Инструкция для нубов!Условные обозначения:
х - любое число;Генератор псевдослучайных чисел - нужная вещь в программировании, например, для написания генератора паролей. Сегодня я хочу показать несколько способов генерации чисел.
Способ 1: Существует функция
random(x), генерирующая число в диапазоне
от 0 до x-1 (где х - аргумент функции
random() ).
Почему х-1? Давайте выясним:
В жизни счёт идёт с единицы, но в программировании счёт идёт с нуля. То есть, код:
trace( random(2) ); // никогда не выдаст 2
при компиляции, в окне Output выдаст 0 или 1, но в любом случае увидеть там 2 не получится.
Способ 2:Но сгенерировать псевдослучайное число в том же самом диапазоне мы можем и другим методом:
Math.random() * x
Но такой метод выдаёт нам дробное число. Как же сгенерировать целое число таким способом?
Для этого есть функция int() (округление числа).
Пример использования int() вместе с Math.random() * x:
trace( int(Math.random() * 5) ); // на выходе даст число от 0 до 4
Практика:
Задача: написать программу "Ваше счастливое число" на ActionScript 2.0.
Решение:
var maxnum = 100 + 1; // максимальное значение, которое сможет выдать генератор (в моём случае - 100)
trace("Ваше счастливое число - " + random(maxnum)); // на выходе даёт: "Ваше счастливое число - х"
Пояснение кода:
В переменной maxnum я написал: "+ 1" после 100 (выбранное мной число) по причине, описанной выше.
--------------------
Спасибо за внимание!
UPD: Поскольку кое-кто сказал, что приставка "псевдо" тут не нужна, то я объясню, почему числа, полученные таким методом, псевдослучайны.
Во-первых, все функции рандома, которые используют некий источник, с которым проводят ужаснейшие вещи, в *nix, например, источником является счётчик тактов процессора, затем используют LFSR с последующим хешированием выхода через SHA-1. То есть, источник можно сделать фиксированным(но только с помощью программного вмешательства в код генератора, таки да), и тогда на выводе получится одно и то же число. Истинно случайные числа получаются с помощью физических шумов. Теоретически, случайное число можно получить даже из космического шума.