7 заметок с тегом

кодерство

Закономерности рандома и статистика. Закон больших чисел.

Трудно не согласиться с тем, что перед тем, как заснуть, в нашей голове пролетают сотни мыслей о всяких разных вещах, из-за чего нам порой трудно заснуть. Со мной тоже так бывает, и в такой момент мне в голову пришла одна задача:

Есть одна функция, которая с вероятностью 70% возвращает «да», и, соответственно, с 30% — «нет». Если запускать такую функцию, к примеру, сто раз, получим ли мы 70 «да» и 30 «нет»?

Я долго ходил и думал над этим, просто из-за того, что у меня никак не было времени взять и проверить гипотезу на практике. Но сегодня я наконец-то написал программу на JavaScript...

function random70() {
    if(Math.floor(Math.random() * (100 + 1)) < 70)
        return true;
    else
        return false
}

trues = 0;
falses = 0;

for(i = 0; i < 100; i++){
    if(random70())
        trues++;
    else
        falses++;
}

Здесь определена функция random70(), которая, собственно, по условию задачи и возвращает с вероятностью 70% «да» (true), и с 30% — «нет» (false). Далее идет цикл, где мы запускаем эту функцию n раз и считаем количество ответов.

Я несколько раз запустил эту функцию и вот, что получилось:

Как видно, даже при миллионах запусках сохраняется тенденция приближенности результатов к идеальным. Δ показывает расхождение полученных результатов и идеальных, увеличивается.

Таким образом, мы не только теперь сможем спать спокойно ночью, а также посмотрели на закон больших чисел в действии.

2017   кодерство   матан

Iriscot mega PHP func pack

PHP-функции для вашего проекта, которые облегчат вам написание кода.

Описание функций

makedate( int timestamp )
timestamp — время в формате UNIX
Возвращает: отформатированная дата. Если дата была сегодня/завтра/вчера — возвращает в соответствующем формате.
Также, можно установить часовой пояс, записав в куку «time_offset» сдвиг в секундах.

getimage( string link )
link — ссылка на изображение
Возвращает: ничего.
Скачивает и выводит изображение, если оно существует по ссылке.

sharebtns()
Возвращает: Код для добавления социокнопок из AddToAny.

fotorama( mixed photos, string width, string height )
photos — массив с ссылками на картинки. Если строка — оттуда автоматически будут получены ссылки.
width — ширина фоторамы
height — высота фоторамы
Возвращает: Код для добавления на страницу фоторамы.
Для корректной работы должны быть подключены JS-библиотека Фоторамы и JQuery.

makelinks( string input )
input — строка с ссылками
Возвращает: HTML-код с кликабельными ссылками.
Обрабатываются:
обычные ссылки HTTP(S), FTP(S)
#хэштеги
@юзеры

checkstr( string input )
input — строка с проверяемым текстом
Возвращает: true, если текст соответствует маске /^[a-zа-я0-9_]{4,15}$/

check_mobile_device()
Возвращает: true, если пользователь сидит с мобильного устройства

inversion( bool invert )
invert — true или false
Возвращает: true, если invert = false и наоборот

translit( string input)
input — строка с русскими буквами
Возвращает: строку input с замененными русскими буквами на их латинский аналог

removehttp(string link)
link — строка со ссылкой
Возвращает: ссылку link с удаленным из нее именем протокола http(s), если он там присутствовал.

send_eml( string to, string subject, string text, string user )
to — E-Mail адресата
subject — тема письма
text — текст письма
user — обращение
Возвращает: ничего.
Отправляет письмо с указанными параметрами. В теле функции можно настроить больше параметров.

imglnk(string href)
href — ссылка на изображение
Возвращает: миниатюру изображения, оригинал по клику.

Также, доступен массив $aLanguages, содержащий расшифровки языковых кодов.

Скачать

2016   кодерство   трэш

Хардкорная клавиатура для osu!

Купил я недавно ардуину, помигал светодиодом, и подумал, а что же действительно годного можно сделать из нее. А тут как раз валялись пара автомобильных реле, мне понравилось, как четко они нажимаются, самый раз для клавиатуры. Сказано — сделано.

Собственно, про хардварную часть рассказывать нечего — контакты реле напрямую воткнуты в 8 и 9 порты. Резистор на 10К не требуется, ибо включен встроенный.

Скетч:

#include <Keyboard.h> //библиотека для клавы

void setup(){
  pinMode(8, INPUT_PULLUP); //выходы 8 и 9 с подтягивающим резистором
  pinMode(9, INPUT_PULLUP);
  Keyboard.begin();
  }
void loop(){
    if(digitalRead(8)==LOW){ //кнопка x
    Keyboard.press('x');
  }
    if(digitalRead(9)==LOW){ //кнопка z
    Keyboard.press('z');
  }
  delay(80); //задержка в мс. по умолчанию 80
  Keyboard.releaseAll();
}

Задержка этой клавиатуры по умолчанию равна 0.08 с, но вы можете поставить свою в скетче. Чем меньше задержка, тем чаще будет отправляться сигнал о нажатой кнопке, даже если вы нажали ее 1 раз.
Пример работы: zzxxxxzzxzxzxzzxzxzx

Вы также можете подключить любые другие кнопки (напр. Cherry MX) и вообще, все, что замыкает контакт.

2016   Arduino   diy   osu   игры   кодерство

Автоматизированная рассылка сообщений в ВК по таймеру

Уже почти новый год, так что пора поздравлять друзей. Но обычные сообщения — слишком скучно для труПрограммиста. Поэтому я сделал этот автоматический скрипт.

Первым делом, нам надо зарегистрировать наше приложение тут.
Тип приложения обязательно указываем Standalone, так как только с такого типа разрешена отправка сообщений.

В настройках приложения, включаем его и запоминаем ID (выделен жирным) и ниже секретный ключ.
Теперь в браузере открываем ссылку https://oauth.vk.com/authorize?client_id=id_приложения&scope=messages&redirect_uri=https://oauth.vk.com/blank.html
Не забываем подставить ID своего приложения.

После нажатия кнопки «Разрешить», в адресной строке появится https://oauth.vk.com/blank.html#code=[буквы-и-цифры]
Теперь надо получить токен. Для этого открываем https://oauth.vk.com/access_token?client_id=id_приложения&client_secret=секретный_ключ&redirect_uri=https://oauth.vk.com/blank.html&code=те_самые_буквы_и_цифры
В результате получаем JSON данные. Копируем оттуда значение token_id.

Теперь мы можем работать с API. Осталось написать скрипт отправки. Я решил использовать JavaScript.
Получилось так:

/* Отправка сообщений ВК через JS
by Iriscot */
/* Настройки */
var msg = 'Тест'; /* сообщение */
var token = '123456789'; /* токен */
var users = '228587222'; /* кому слать, через запятую */
function addScript(src) {
var elem = document.createElement(«img»);
elem.src = src;
document.head.appendChild(elem);
}
function send(){
var date = Math.round(new Date().getTime() / 1000); /* получаем дату */
if (date == 1451606400){ /* если Новый Год */
console.log('Отправляем...');
addScript(«https://api.vk.com/method/messages.send?access_token=»+token+«&user_ids=»+users+«&message=»+msg);
alert('Отправка соверешена!'); /* выводим сообщение */
}
}
setInterval(send, 500); /* проверяем дату каждые полсекунды */

Можно создать отдельную HTML страницу, а можно просто вставить этот код в консоль браузера(F12) и ждать.
Не забудьте получить свежий токен за несколько часов!
Алсо, не рекомендуется использовать прогу для спама, вы же не хотите получить бан в ВК?

2015   diy   Web-разработка   кодерство

Это вин

Участвовал сегодня в районной олимпиаде по информатике. Запилил сайт, выиграл флешку.

Сам сайт можно посмотреть тут

UPD 2017: Сайт не работает, флешку потерял :)

2015   diy   Web-разработка   win   кодерство   кулстори
2015   кодерство   матан