09 FreeBASIC - случайные числа, RND

Рассмотрим несколько примеров генераторов случайных чисел.
Составим программу которая ставит точки на экране со случайными координатами. Разрешение экрана выберем новой командой FreeBASICa **SreenRes** у которой в данном случае будет три параметра: разрешение по горизонтfли(800), вертикали(600) и глубина цвета(8 бит)
Как видно из результата работы этой программы генератор случайных чисел FreeBASIC не плохой - заполнение экрана равномерное, без явных сгустков и разрешений.

А теперь посмотрим на генератором случайных чисел моего первого домашнего компьютера Sinclair ZX
В своём [посте](https://golos.io/ru--kompxyuter/@sergiy/bk-orel) я упоминал онлайн [эмулятор](http://torinak.com/qaop) своего первого домашнего компьютера. Попробуйте в нём исполнить такой код.

Чтобы набрать несколько строк прийдется изрядно промучиться, так как все ключевые слова закреплены под определёнными клавишами, а не набираются посимвольно)))
Размер экрана - 256х192 точки, но так как две нижние строки отведены под "системные нужды" это минус 16 строчек и размер экрана выходит 256х176

Это результат для 3000 точек

для 9000

и для 15000

огрехи генератора случайных чисел Sinclair ZX очень заметны, явно видно что здесь что то не то))
Ещё боле наглядно выглядит картина если случайные точки расположить в трехмерном пространстве.
Это иллюстрация работы генератора RANDU, говорят наименее продуманного генератора случайных чисел.
В начале видео кажется что точки случайно разбросаны в пространстве, но под определённым углом видно что "случайные числа не случайны".
https://youtu.be/7wVk_XsxyNk

Чем это чревато? Например, если моделируется некоторые явления, то там можно обнаружить закономерности которых быть не должно.
Но что говорить о RANDU 60х годов, тогда компьютеры были большие, а их возможности маленькие. Но даже в 1995 году браузер Netscape сделал не совсем качественный генератор случайных чисел и его легко взломали. [хабр](https://habr.com/post/128666/)
В 2013 году в Android кошельке "забыли" давать команду типа `randomize timer` что позволило иногда генерировать одинаковые СЧ. И можно было разгадать секретный ключ от кошелька. [ссылка](https://www.computerra.ru/183451/prng/)
«Генерация случайных чисел слишком важна, чтобы оставлять её на волю случая» - афоризм математика Роберта Кавью.

