Страница 12 из 20 ПерваяПервая ... 21011121314 ... ПоследняяПоследняя
Показано с 111 по 120 из 239

Тема: Временная тема

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    тогда вопрос, сколько байт тестируют тесты nist? И когда Вы скармливаете оскатовский вариант, который честно разбрасывает числа по всему четырехбайтовому диапазону, не получается ли что тест выкидывает из обращения утрированно 25% чисел, хотя это старший байт и я не знаю сколько чисел "округляется" может поэтому
    nist тесты тестируют 1 бит.

    Вот как я использовал OSCAT'овский генератор для тестов nist:
    Код:
    float rdm = oscat_next();
    if ( rdm < 0.5 )
            bit = 0;
            num_0s++;
    }
    else {
            bit = 1;
            num_1s++;
    }
    mask /= 2;
    bitsRead++;
    epsilon[i] = bit; // <-- этот массив потом проверяется в тестах nist
    Т.е. от каждого вызова OSCAT генератора я тестировал лишь один бит.
    Такой подход (использование только одного бита из всего float'а) используется в базовом примере nist теста -- lcg генератор генерирует double, и использует из него один-единственный бит.

    Поэтому:
    1) Считаю, что из OSCAT генератора использовалось максимально возможное количество бит
    2) Возможно, OSCAT'овский генератор нужно ещё как-то проверять. Например, если OSCAT возвращает всегда либо 0 либо 0.99, то мой тест это не заметит (он же только с 0.5 сравнивает). Можно попробовать умножить результат OSCAT'а на 224 и использовать несколько бит оттуда.
    Но, раз уж тест с <0.5 не работает, то нужно ли проверять больше бит?
    Последний раз редактировалось Владимир Ситников; 19.07.2016 в 10:33.

  2. #2
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,256

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    nist тесты тестируют 1 бит.

    Вот как я использовал OSCAT'овский генератор для тестов nist:
    Код:
    float rdm = oscat_next();
    if ( rdm < 0.5 )
            bit = 0;
            num_0s++;
    }
    else {
            bit = 1;
            num_1s++;
    }
    mask /= 2;
    bitsRead++;
    epsilon[i] = bit; // <-- этот массив потом проверяется в тестах nist
    Т.е. от каждого вызова OSCAT генератора я тестировал лишь один бит.
    Такой подход (использование только одного бита из всего float'а) используется в базовом примере nist теста -- lcg генератор генерирует double, и использует из него один-единственный бит.

    Поэтому:
    1) Считаю, что из OSCAT генератора использовалось максимально возможное количество бит
    2) Возможно, OSCAT'овский генератор нужно ещё как-то проверять. Например, если OSCAT возвращает всегда либо 0 либо 0.99, то мой тест это не заметит (он же только с 0.5 сравнивает). Можно попробовать умножить результат OSCAT'а на 224 и использовать несколько бит оттуда.
    Но, раз уж тест с <0.5 не работает, то нужно ли проверять больше бит?
    опять же не показана реализация флоата в oscat_next, маска из трех или четырех байт, если сделано по анологии с xorshift тогда теряется некоторая часть случайных значений и вряд ли будут пройдены тесты
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #3
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,256

    По умолчанию

    да, не заметил.

    можно ведь и так задавать T_PLS_MS http://ru.stackoverflow.com/question...83%D0%BD%D0%B4

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

    код показали, я правильно понимаю, что для тестов нужен такой "\t\tBITSREAD = %d 0s = %d 1s = %d\n" формат файла? Или можно произвольный?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  4. #4

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    можно ведь и так задавать T_PLS_MS http://ru.stackoverflow.com/question...83%D0%BD%D0%B4
    А смысл?
    Есть же алгоритм xorshift128, который не зависит от качества генератора времени.
    Обясните: зачем цепляться за OSCAT?
    Если для вас это вопрос веры, а не здравого смысла, то так и скажите. Мне этого будет достаточно. Обращать вас в веру "общемировой математики" я не собираюсь.

    Цитата Сообщение от capzap Посмотреть сообщение
    ну так если такой красивый уход с четырех на три байта решил проблему с получением реала, что тут еще можно сказать. Буду ждать когда Вы с четырьмя это проделаете используя только одну строчку
    Ничего не понимаю.

    Давайте начистоту.

    Цитата Сообщение от capzap Посмотреть сообщение
    ну и, а теперь все Ваши явовские выкладки примените в КДС и выложите код, где получите РЕАЛ.
    Я под сомнение не ставил, я всегда говорил что ожидаемый результат можно не получить
    Раз пытаетесь уйти от темы, значит решения еще не нашли
    Какой такой результат "можно не получить"?

    Цитата Сообщение от capzap Посмотреть сообщение
    я рад, что моя подсказка "куда копать" помогла, а то четыре дня на простой код это очень много для математика
    О чём именно говорилось под словами "куда копать"?
    Я расчехлил КДС, сделал там REAL, всё работает как я и ожидал.
    В чём планировалась засада?


    Цитата Сообщение от capzap Посмотреть сообщение
    код показали, я правильно понимаю, что для тестов нужен такой "\t\tBITSREAD = %d 0s = %d 1s = %d\n" формат файла? Или можно произвольный?
    Это просто отладочный код. Ну, чтобы по результатам замеров глазами посмотреть не случилось ли того, что "из-за ошибки в коде все значения оказались нулевыми".
    Если речь про файл для тестирования генератора, то он просто бинарный. Ну или в любом формате, который можно в поток бит превратить.
    Последний раз редактировалось Владимир Ситников; 19.07.2016 в 11:58.

  5. #5
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,256

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Я расчехлил КДС, сделал там REAL, всё работает как я и ожидал.
    ну это только с Ваших слов всё получилось в один присест, никогда раньше не упоминалось про 24 бита, а значит со стандартными 32 битами не выходило написать код, без лишних кусков кода
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  6. #6

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    ну это только с Ваших слов всё получилось в один присест, никогда раньше не упоминалось про 24 бита, а значит со стандартными 32 битами не выходило написать код, без лишних кусков кода
    Чьёрт побери!
    Вы спросили "как сделать float" -- я процитировал фрагмент из java (это было сообщение 132):
    http://www.owen.ru/forum/showthread....l=1#post215249

    После этого вас прорвало:
    сообщение 138 "ожидаемый результат можно не получить"
    и сообщение 144 "куда копать".

    Посмотрите ещё раз на #132. Там ясно сказано про 24 бита.
    И это вы называете "раньше не упоминалось про 24 бита"?
    Снова ошиблись?

  7. #7
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,256

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    После этого вас прорвало:
    сообщение 138 "ожидаемый результат можно не получить"
    и сообщение 144 "куда копать".
    а чего Вы это нетактично умолчали про пост #129, тогда я не знал что Вы оказывается будете иметь ввиду 24 бита и ждал результатов в КДС из 32-битного результата
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  8. #8
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,256

    По умолчанию

    а вот собственно и подтверждение мною вышесказанного
    А с чего вы взяли, что у вас правильный тест? Может, ваш тест погоду показывает.
    В чём смысл тотального отрицания мирового опыта?
    потому что это классический расчет среднего...
    Внимание, вопрос: почему не взять классический тест? Тест frequency из состава nist считает количество нулевых и единичных бит...
    отклонение от эталонной средней больше процента
    и описание теста
    Тест оценивает, насколько близка доля единиц к 0,5. Таким образом, число нулей и единиц должно быть примерно одинаковым. Если вычисленное в ходе теста значение вероятности p < 0,01, то данная двоичная последовательность не является истинно случайной. В противном случае последовательность носит случайный характер. Стоит отметить, что все последующие тесты проводятся при условии, что пройден данный тест.
    среднее присутствует, вероятность тоже равна одному проценту
    Получается говорили об одном и том же, а по факту я невежда. Выше уже писалось что нельзя определять по картинке, но картинка рисуется на основе этих данных
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  9. #9

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    а вот собственно и подтверждение мною вышесказанного
    capzap "слышал звон, да не знает где он".

    Цитата Сообщение от capzap Посмотреть сообщение
    и описание теста
    Это неправильное описание (ну, формально, описание правильное, но его очень легко прочитать неправильно -- не хватает слов о том, что именно там является "вычисленным в ходе теста значением"). Под p, разумеется, имеется ввиду p-значение, а НЕ среднее и НЕ вероятность.


    Вот frequency test из nist.
    Если найдёте где тут про "отклонение от эталонной средней больше процента" -- дайте знать.

    Код:
    /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
                              F R E Q U E N C Y  T E S T
     * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
    #define ALPHA                                                   0.01    /* SIGNIFICANCE LEVEL */
    
    void
    Frequency(int n)
    {
            int             i;
            double  f, s_obs, p_value, sum, sqrt2 = 1.41421356237309504880;
    
            sum = 0.0;
            for ( i=0; i < n; i++ )
                    sum += 2*(int)epsilon[i]-1;
            s_obs = fabs(sum)/sqrt(n);
            f = s_obs/sqrt2;
            p_value = erfc(f);
    
            fprintf(stats[TEST_FREQUENCY], "\t\t\t      FREQUENCY TEST\n");
            fprintf(stats[TEST_FREQUENCY], "\t\t---------------------------------------------\n");
            fprintf(stats[TEST_FREQUENCY], "\t\tCOMPUTATIONAL INFORMATION:\n");
            fprintf(stats[TEST_FREQUENCY], "\t\t---------------------------------------------\n");
            fprintf(stats[TEST_FREQUENCY], "\t\t(a) The nth partial sum = %d\n", (int)sum);
            fprintf(stats[TEST_FREQUENCY], "\t\t(b) S_n/n               = %f\n", sum/n);
            fprintf(stats[TEST_FREQUENCY], "\t\t---------------------------------------------\n");
    
            fprintf(stats[TEST_FREQUENCY], "%s\t\tp_value = %f\n\n", p_value < ALPHA ? "FAILURE" : "SUCCESS", p_value); fflush(stats[TEST_FREQUENCY]);
            fprintf(results[TEST_FREQUENCY], "%f\n", p_value); fflush(results[TEST_FREQUENCY]);
    }
    Цитата Сообщение от capzap Посмотреть сообщение
    а по факту я невежда.
    Ага, так и есть. Вы сравниваете "отклонение от среднего с 1%" -- а в статистике всегда p-значения используются.

    Не разбираетесь в статистике -- не беда Просто знайте, что если встанет вопрос про математическую статистику, то нужно не кулибинством заниматься, а спросить у тех, кто в теме. Ну и не стоит напрасно обвинять других в "демагогии", в "постоянных придирках" и т.п.
    Последний раз редактировалось Владимир Ситников; 19.07.2016 в 18:47.

  10. #10
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,256

    По умолчанию

    так что там по Wichmann-Hill?

    да и
    Это неправильное описание
    https://ru.wikipedia.org/wiki/%D0%A1...%82%D1%8B_NIST здесь отпишитесь , что они неправильно трактуют
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Страница 12 из 20 ПерваяПервая ... 21011121314 ... ПоследняяПоследняя

Похожие темы

  1. Тема для диплома
    от Gordan007 в разделе Трёп (Курилка)
    Ответов: 13
    Последнее сообщение: 18.01.2014, 13:08
  2. Бродит тема..
    от energohran в разделе Разработки
    Ответов: 3
    Последнее сообщение: 10.04.2012, 13:53
  3. МОДУС: тема защиты прошивки
    от Elka в разделе Модус 5684-0
    Ответов: 1
    Последнее сообщение: 28.11.2011, 23:39
  4. Язык ST. Временная задержка.
    от neoarey в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 26.03.2011, 01:15
  5. Ответов: 61
    Последнее сообщение: 12.09.2008, 10:49

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •