Alexander Ch. писал(а):Невозможно смоделировать такую задачу чисто софтом. Надо железячный датчик случайных чисел (действительно случайных).
Я пробова Excel для этого приспособить, что получилось:
В одной выборке 100 случайных чисел от 1 до 100 было 98 уникальных,
в другой выборке 1000 случайных чисел от 1 до 100 было 52 уникальных числа.
Эээ... да не нужен тут генератор случайных чисел, нужен симулятор администрации тюрьмы...
Так что Excel вполне даже подойдёт...
Я в таких случаях читаю значения регистра таймера. В мультитаскинг системе и при определеннных условиях -- вполне случайное число.
А вообще-то все железячные генераторы имеют математическую подоплеку и легко могут быть формализованы любым языком програмирования.
Akrav писал(а):А вообще-то все железячные генераторы имеют математическую подоплеку и легко могут быть формализованы любым языком програмирования.
Согласен, потому как тот же Е - эмуляция на С++ и все его параллельности и обьектные переменные написаны на обычном С или С++, всё что он делает, это во время симуляции прерывает её, делает все "параллельные" действия и отпускает. И генератор там тоже псевдо-рандомальный разумеется, я правда не знаю какой именно дистрибуцией он пользуется, в своё время я спрашивал у Верисити об этом, но парень, который делал в нашей конторе суппорт сказал, что довольно всё линейно и записал идею насчёт того чтоб закладывать разные дистрибуции и регулировать параметры. Для случая с заключёнными достаточно того что есть, потому как слишком простой пример.
Лично я не знаю как решить задачу, когда каждый заключённый считать может. С двумя не пытался. Наверняка можно докопать, самая большая загвоздка это повторное посещение комнаты одним заключённым в то время пока считающий не заходит в комнату.