Извличане на знание
/ Knowledge Discovery >> Извличане на знание >> тек >> компютър >> компютърен хардуер >>

Как може един напълно логичен компютър генерира случайно число?

How може напълно логично машина като компютър генерира случайно число?
Как може един напълно логичен машина като компютър генерира случайно число?

Има два начина, които компютри могат да генерират случайни числа: стара <р> Можете да създадете някаква устройство, което следи напълно произволна природно явление, и изпраща резултатите си с компютъра. Например, бихте могли да поставите парче на радиоактивен материал в предната част на Geiger брояч и свържете Geiger брояч към компютър. Тъй като радиоактивен разпад е случайна, на Geiger брояч ще създаде истински случайни числа. Този подход е доста рядко, защото не много хора имат гайгерови броячи, свързани с техните машини. Можете да създадете формула, която генерира псевдо-случайни числа. При проектирането на формулата, идеята е тя да произвежда поредица от числа, която ще изглежда случайно за всеки, който не знаеше какво е формулата. Характеристики на добра формула включват:

<Ли> Не повторение: Последователността не цикъл наоколо и да се повтори. Добър цифров разпределение: Ако формулата е производство на случайни числа между 0 и 9, броят на нули, такива двойки, и т.н., които трябва да се произвежда приблизително равно в продължение на дълъг период от време. Липсата на предвидимост: Вие няма как да се предвиди какво ще бъде следващото число, ако не знаете формулата и семената (първоначалната стойност)

<р> Ето един пример за прост случаен номер формула от. книгата " The C език за програмиране, " от Kernighan и Ричи:
<предварително> инт ранда () {random_seed = random_seed * 1103515245 12345; връщане (неподписан INT) (random_seed /65,536) 32,768%; }

Тази формула предполага съществуването на една променлива, наречена random_seed, която първоначално се установява в известна номер. The random_seed променлива се умножава по 1103515245 и след това получава 12 345 добавени към продукта; След random_seed се заменя с тази нова стойност. Това всъщност е доста добра псевдо-генератор на случайни номера. Той е с добро разпределение и той не е повтарящ се. Ако го използвате, за да произвежда случайни числа между 0 и 9, тук са първите 20 ценностите, които тя произвежда ако семената е 10:
<предварително> 44607423505664567674

Ако имате го произвеждат 10,000 стойности между 0 и 9, ето разпределението:
<предварително> 0 - 10151-10242 - 10483-9964 - 9885-10016 - 9967-10068 - 9659-961 <р> Всеки псевдо-случайни числа формула зависи от стойността на семена, за да за

Page [1] [2]