1.8.62.6638, ошибка Object reference not set to an instance of an object
xorshift128_pr110.png
Ошибка:
Снимок экрана 2016-07-16 в 18.28.12.png
Проект: xorshift128_pr110.owl
1.8.62.6638, ошибка Object reference not set to an instance of an object
xorshift128_pr110.png
Ошибка:
Снимок экрана 2016-07-16 в 18.28.12.png
Проект: xorshift128_pr110.owl
Последний раз редактировалось Владимир Ситников; 16.07.2016 в 18:30.
ПР110 работает только с 16 разрядными внутренними переменными. Это для начала.
А что так ?Почему не 64 ,как то не универсально ...
Можно правда на Пр200 перенести ,но тогда опять для каждой ПР свой RND ,опять не универсально ...А кто то говорил ,что математика везде должна работать ,хоть на счетах ,хоть на ПР ,хоть на ПК . Так всегда бывает ,когда не учитываешь ,то на чем ездить будешь..
Последний раз редактировалось rovki; 18.07.2016 в 10:58.
электронщик до мозга костей и не только
Внутренние -- пусть какие угодно будут.
А в документации на ОЛ ограничений в 16 разрядов нет.
Про XOR/SHL, конечно, вообще ничего не сказано про разрядность, но в ADD явно сказано, что речь о 32 bit unsigned int.
Как уж они представляются в процессоре -- меня не волнует. Главное, чтобы работали как 32 bit unsigned int.
Поправил 4-ую константу -- в симуляции значения совпадают с теми, что вычисляются в C.
xorshift128_pr110_correct.owl
value = 3701687786
value = 458299110
value = 2500872618
value = 3633119408
value = 516391518
value = 2377269574
и т.д.
Ну и как теперь его потреблять ,мелькают одни миллионы ,миллиарды ,а мне надо 0-100...
электронщик до мозга костей и не только
Если от 0 до 100, то достаточно поставить "остаток от деления на 101".
Для больших диапазонов начнёт ощущаться неравномерность (в java в таких случаях вообще цикл используется)
Например, если потребуется число в диапазоне 0..(230+1), то просто так считать остаток от деления на это самое 230+1 уже нехорошо.
Т.е. либо использовать float'ы (ну, поделить на 232-1 и умножить на 100), либо остаток от деления.
Для степеней двойки можно просто and делать -- будет равномерный выход. Например, and(..., 15) -- и на выходе равномерное распределение от 0 до 15-и включительно.
Последний раз редактировалось Владимир Ситников; 18.07.2016 в 14:41.
Ну так и надо доделать до конца как у AI,ряд от 0 до 2 в степени 30 на ПР ни кого не интересует ...
ограничений по диапазону быть не должно -хоть 36 ,хоть 49 ...
электронщик до мозга костей и не только