вторник, 8 октября 2013 г.

Тест Миллера — Рабина

Тест Миллера — Рабина — вероятностный полиномиальный тест простоты. Тест Миллера — Рабина позволяет эффективно определять, является ли данное число составным.

Алгоритм был разработан Гари Миллером в 1976 году и модифицирован Майклом Рабином в 1980 году.

Исходный код функции Миллера  Рабина на С++

Для быстрого возведения числа в степень по модулю используется функция
pow_on_mod. Её реализацию вы можете найти в интернете.


bool test_Miller_Rabin(long long m) {

       if(m==2 || m==3)
             return true;

       if(m % 2 == 0 || m == 1){
             return false;
       }

       long long s = 0;
       long long t = m-1;
       long long x=0;

       long long r1 = 2;
       long long r2 = m-2;
       long long a;

       long long r = (log(m) / log(2));


       while(t!=0 && t % 2 == 0){
             s++;
             t/=2;
       }

       for(long long  i = 0; i < r; i++) {
             a = r1 + rand()%(r2-r1);

             x = pow_on_mod(a,t,m);
             if(x==1 || x==m-1) {
                    continue;
             }

             for(long long j = 0; j < s-1; j++) {
                    x = pow_on_mod(x,2,m);

                    if(x == 1)
                           return false;
                    if(x == m - 1)
                                  break;
             }

             if(x == m - 1)
                    continue;

             return false;
       }

    return true;
}

четверг, 19 сентября 2013 г.

Старый Бердск

Основан в 1716 году на реке Бердь (правый приток Оби) как крепость Бердский ост. 

После окончания Великой Отечественной войны город продолжал развиваться. Появились новые отрасли промышленности: в 1946 году был открыт Бердский радиозавод, начавший выпуск радиоприёмников и радиол.

Однако из-за строительства Новосибирского водохранилища основная территория города оказалась в зоне затопления. В результате город был выстроен заново вокруг существовавшего района у железнодорожной станции в 8 километрах от старого местоположения. Перенос города был начат в 1953 году и закончен к 1957 году. http://ru.wikipedia.org/wiki/Бердск 

1.04.2011 уровень воды в Новосибирском водохранилище был не высок и территория старого Бердска оголилась. Мне стало интересно и я не смог не посетить ее. 

Фотографии с прогулки можно посмотреть на Panoramio :
http://www.panoramio.com/user/vitaliy.guschin/tags/Old_Berdsk






четверг, 29 августа 2013 г.

Расчет 1пм в жиме лежа

Одно повторение с максимальным весом может быть использовано для определения максимальной силы человека. Для расчета жима лежа на раз я использую три формулы (Brzycki, Epley, Lander).

1 rep max - это максимальный вес
weight lifted - рабочий вес
# of reps - количество повторений (от 2-10)

Формула Brzycki







Формула Epley






Формула Lander







Так как считать в ручную не удобно, я написал небольшую программу на Си. 
















Скачать программу под Windows 
https://www.dropbox.com/s/4h8v8cc49kw7fvm/jim.exe

Скачать исходный код программы (Можно скомпилировать под Linux)
https://www.dropbox.com/s/z6pwzr9fr92bmnc/jim.c

Формулы взяты из вот этого источника 
http://www.weightrainer.net/training/coefficients.html 


среда, 28 августа 2013 г.

RarJpeg

RarJpeg - это картинка и архива в одном файле.

Пример:
У нас есть файл img.jpg и file.zip. Для слияния двух файлов, открываем командную строку Windows (cmd).
1) Переходим в директорию с картиной и архивом.
2) Пишем в ней следующую команду:
copy /b img.jpg+file.zip new_img.jpg

*Картинка должна быть первой.




В директории появится файл new_img.jpg, он корректно будет отражаться отображаться программами просмотра изображений и браузерами. Если эту картинку открыть через архиватор, то откроется наш приклеенный архив.

Вот пример RarJpeg'a, картинка с сюрпризом.