О Random и RandomRange

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Re: О Random и RandomRange

Сообщение Сквозняк » 08.07.2021 19:19:47

Vadim писал(а):
Сквозняк писал(а):Заклинания нужно тестировать чтобы определить их границы применимости...

Ну да, ну да... А тестировать неохота... Охота, чтобы пришёл кто-то мудрый и сказал: делать так и перетак... И при этом хорошо бы ещё поднял указующий перст к небосводу... И неважно, что с тестированием задача решается в 10 раз быстрее - ждём сакральной мудрости... ;-) :-)


Ничего быстрее не будет, потому что в сутки можно потратить определённое количество усилий на творческую деятельность. Можно их потратить на поиск какашек в формулах, а можно на что-то полезное. И самое плохое, что в документации про самые невкусные какашки писать не любят, там почти одна реклама достоинств. Потому проще написать коряво и с минимумом новых формул чем заниматься их шлифовкой. И всё равно результат рандома с простой формулой получается так себе. По нормальному нужно собирать кучу худых рандомов и смешивать, то есть опять творить жирный рандом от которого пытались убежать. Но заниматься шлифовкой идеала вместо полезной деятельности тоже желания мало, потому - здравствуй зоопарк реализаций рандома в одной программе :twisted: А всего этого могло и не быть, если бы разрабы фпц не затупили и устроили простейшую гонку с поочерёдным перехватом потоками данных штатного рандома вместо какой-то лажи, которую и протестировать без зоопарка железа и ОС сложно.

Как бы решение уже слепил, осталось теперь точечно применять, пусть с этими неидеальными формулами дальше математики порнуху устраивают. Сомневаюсь что можно что-то сильно улучшить всё не поменяв.
Сквозняк
энтузиаст
 
Сообщения: 966
Зарегистрирован: 29.06.2006 22:08:32

Re: О Random и RandomRange

Сообщение Vadim » 09.07.2021 02:53:46

Сквозняк писал(а):Сомневаюсь что можно что-то сильно улучшить всё не поменяв.

А вот и зря. В моей книжке по истории языка Паскаль есть пример ГПСЧ с гауссовым распределением. Там код в сумме куда менее объёмный, чем реализация МТ в FPC. Правда код для Оберона, но вряд ли он для Паскаля будет принципиально негодный, разве что из религиозных соображений. :-D
Vadim
долгожитель
 
Сообщения: 4060
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: О Random и RandomRange

Сообщение Сквозняк » 09.07.2021 05:37:17

Vadim писал(а):
Сквозняк писал(а):Сомневаюсь что можно что-то сильно улучшить всё не поменяв.

А вот и зря. В моей книжке по истории языка Паскаль есть пример ГПСЧ с гауссовым распределением. Там код в сумме куда менее объёмный, чем реализация МТ в FPC. Правда код для Оберона, но вряд ли он для Паскаля будет принципиально негодный, разве что из религиозных соображений. :-D

Как бы, если говорить о размере, то лазарусная гуёвина весит от нескольких метров и требует чтобы ей отдали главный поток, а вся полезная логика пусть ютится во второстепенном как хочет. А если говорить о нагрузке на процессор, то она зашкаливает, когда потоки друг другу массивами кидаются. Для её снижения нужно это делать пореже, но не слишком редко. То есть и нагрузка, и размер, изначально большие по не зависящим от генератора рандома обстоятельствам. От рандома требуется лишь чтобы он работал хорошо, разнообразно и не вызывал ощущения жучка из плохо обработанной толстенной проволоки в пробке.
Сквозняк
энтузиаст
 
Сообщения: 966
Зарегистрирован: 29.06.2006 22:08:32

Re: О Random и RandomRange

Сообщение sunjob » 07.02.2022 23:29:15

добрый день
в 3х предложениях можно про "потокоза\неза-щищенность рандомайз функции" и особенности использования рнд-функции в многопоточном приложении
п.с. было много "вкусных" слов и предложений, не все перевирал, пардон... переварил кателок :о)
спасибо
Аватара пользователя
sunjob
постоялец
 
Сообщения: 121
Зарегистрирован: 12.01.2011 15:19:54

Re: О Random и RandomRange

Сообщение zub » 08.02.2022 00:09:04

фпцшный ртлный рандом читает и пишет в глобальную переменную без многопоточной контрацепции = нельзя юзать в многопоточном приложении
zub
долгожитель
 
Сообщения: 2809
Зарегистрирован: 14.11.2005 23:51:26

Re: О Random и RandomRange

Сообщение Сквозняк » 08.02.2022 04:14:11

Не то, чтобы его совсем нельзя было применять, кое где и кое-как всё же можно. Можно запастись данными перед запуском потоков, тогда же запустить и альтернативные функции рандома, а после запуска потоков вызывать фэпэцэшный рандом там, где хренового качества числового ряда хватит. Например, надо что-то оригинально перетусовать и можно запускать рандом много раз, пока весь массив не перетусуется. Рано или поздно, но нужное число выпадает. Так вносится разнообразие в альтернативный рандом, работающий на формулах.
Сквозняк
энтузиаст
 
Сообщения: 966
Зарегистрирован: 29.06.2006 22:08:32

Пред.

Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Рейтинг@Mail.ru