Генерация то закончилась ,а обработка значений НЕТ!Все ухожу ...
электронщик до мозга костей и не только
да в онлайн Вы видите не соответствие якобы. Но на этой картинке обратите внимание на последнюю строчку в окне объявлений она показывает каким индексом должен заканчиваться массив, соответственно stuff[count+1] вызовет ошибку. Тут вернее будет поставить IF count <= idx THEN.
По остальному, ну не может плохой код нормально работать в случае когда в коде меняется одна переменная idx с десяти на пять тысяч и артачиться когда вновь перехожу на 10000. Меня насторожило и я поделился со всеми, а вот Вы могли бы и вспомнить предыдущие мои посты где я упоминал, что не всегда плк готов загружать обновленный проект, если я выставлю максимум массиву более 6000. Может все же начать верить что плк это не ПК и пускай законы математики везде одинаковы но не везде выполняются, мне в принципе не трудно и исходник выложить этого поу. И я опять же говорил что среднее, это переменная maxi соответствует норме, а в случае если бы там было число 16177, оно бы не получилось приближенно равным 0.5
ЗЫ я не устану повторять, что метод прост, соответствует ГСЧ, но плк это особая вещь, возможно мне не хватает цикла, хотя все параметры из модуля статистики говорят об обратном
Последний раз редактировалось capzap; 20.07.2016 в 21:17.
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Читаем ещё раз код по слогам: максимально возможный номер элемента в массиве stuff, в который будет запись равен idx.
Т.к. вы пишете через stuff[count], а при count >= idx+1 в ветку записи выполнение не заходит.
А при чтении вы используете FOR t:=0 TO (idx+1) DO.
Т.е. t может принимать значение idx+1, и вы в итоге пытаетесь прочитать значение stuff[idx+1], а это значение не инициализировано.
Давайте вы всё-таки поправите эту ошибку любым удобным вам образом (массив побольше, или убрать idx+1 из границы FOR цикла), и сделаете эксперимент ещё раз?
Ошибка есть? Есть.
Давайте править, а потом уже обсуждать "как такое может быть"?
Вы же код больше любите, чем теорию.
И, да. Конкретно для теста frequency сам массив не нужен.
Можно просто прибавлять новое значение к sum (+1 или -1) и считать количество (ну, чтобы потом на корень из n поделить). Таким образом можно и 100'000 и больше бит тестировать.
Давайте всё-таки сначала исправим сам код, а потом уже будем делать выводы?
На всякий случай: эту вашу позицию я услышал, и сразу соглашусь с ней/признаю что был неправ и всё такое, если появятся реальные подтверждения, что ГСЧ на ПЛК работает не так как на ПК (ну, T_PLS_MS не считается -- тут само собой понятно, что на ПК и ПЛК будут отличия).
Да, у вас была неплохая заявка на доказательство, но, к сожалению в коде ошибка.
Последний раз редактировалось Владимир Ситников; 20.07.2016 в 22:02.
да, это ошибка, видимо неудачный копипаст.
Только это как раз очень убедительная заявка, сейчас смотрел двухминутное видео и ни как она не влияла на работу
вот тоже с ПК не могу загрузить видюшный файл
Так, теперь не понимаю что имеется ввиду под "ошибка никак не влияла на работу".
Каков у вас критерий?
На основе чего решаете "прошёл тест или нет"?
Неужели прямо на первой итерации при использовании xorshift значение freq оказывается меньше 1?
PS. В выложенном проекте по-прежнему ссылка на hill.res. Вы точно именно xorshift, а не hill тестировали после исправления ошибки?
в циклах я убрал единицу
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
#173 пост, на скрине результат остановки по невыполнение критерия,а не из-за того что сумма зашкалила, добавленная единица в цикл уже тогда присутствовала, останов тот произошёл где то на пятый шестой прогон. а в этом коде да hill надо убрать,в объявлении я его удалил и заменить на tst или что там у меня. еще забыл в экспорт добавить оскатовский корень
зы там где два скрина выкладывал оба метода показал что останавливаются
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Ну, hill/корень я убрал -- у меня норм работает (в симуляторе).
В #173 ошибка не исправлена.
stuff заполняется до idx, а читается до idx+1.
Сделайте, пожалуйста, ещё скрин, чтобы там в цикле верхняя граница была idx, и тоже сумма зашкалила.
Последний раз редактировалось Владимир Ситников; 20.07.2016 в 23:27.