09 FreeBASIC - случайные числа, RND
Рассмотрим несколько примеров генераторов случайных чисел.
Составим программу которая ставит точки на экране со случайными координатами. Разрешение экрана выберем новой командой FreeBASICa SreenRes у которой в данном случае будет три параметра: разрешение по горизонтили(800), вертикали(600) и глубина цвета(8бит)
Как видно из результата работы этой программы генератор случайных чисел FreeBASIC не плохой - заполнение экрана равномерное, без явных сгустков и разрежений.
А теперь посмотрим на генератором случайных чисел моего первого домашнего компьютера Sinclair ZX
В своём посте я упоминал онлайн эмулятор своего первого домашнего компьютера. Попробуйте в нём исполнить такой код.
Чтобы набрать несколько строк прийдется изрядно промучиться, так как все ключевые слова закреплены под определёнными клавишами, а не набираются посимвольно)))
Размер экрана - 256х192 точки, но так как две нижние строки отведены под "системные нужды" это минус 16 строчек и размер экрана выходит 256х176
Это результат для 3000 точек
для 9000
и для 15000
огрехи генератора случайных чисел Sinclair ZX очень заметны, явно видно что здесь что то не то))
Ещё боле наглядно выглядит картина если случайные точки расположить в трехмерном пространстве.
Это иллюстрация работы генератора RANDU, говорят наименее продуманного генератора случайных чисел.
В начале видео кажется что точки случайно разбросаны в пространстве, но под определённым углом видно что "случайные числа не случайны".
Чем это чревато? Например, если моделируется некоторые явления, то там можно обнаружить закономерности которых быть не должно.
Но что говорить о RANDU 60х годов, тогда компьютеры были большие, а их возможности маленькие. Но даже в 1995 году браузер Netscape сделал не совсем качественный генератор случайных чисел и его легко взламали. хабр
В 2013 году в Android кошельке "забыли" давать команду типа randomize timer
что позволило иногда генерировать одинаковые СЧ. И можно было разгадать секретный ключ от кошелька. ссылка
«Генерация случайных чисел слишком важна, чтобы оставлять её на волю случая» - афоризм математика Роберта Кавью.
09 FreeBASIC - случайные числа, RND
08 FreeBASIC - случайные числа, RND
07 FreeBASIC - циклы
06 FreeBASIC - условный оператор
05 FreeBASIC - первые простые задачки
04 FreeBasic - графика
03 FreeBASIC. Текстовые переменные и операции с ними
02 FreeBASIC Переменные в Бейсике
01 Начинаем изучать FreeBasic
00 FreeBASIC лучший из диалектов бейсика