Форум программистов, компьютерный форум, киберфорум
Математика
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/33: Рейтинг темы: голосов - 33, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 17.06.2013
Сообщений: 13
1

Как работает оператор randomize?

14.10.2008, 17:49. Просмотров 5923. Ответов 5
Метки нет (Все метки)

У меня вопрос общего характера: как компьютер выбирает "случайный" вариант? Если на экзе мне предлагают выбрать любой билет, я действую на основе каких-то своих предпочтений или суеверий: беру, который торчит дальше всех, или напечатанный на самой белой бумаге или еще что-то подобное. Но как это делает комп? Ведь его действия основаны на чистой логике, иными словами, это цепочка причин-следствий. Чтобы выбрать один вариант, а не другой, ему нужны какие-то основания. Так вот, если ему задают выбрать абсолютно любой вариант, как он это делает?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.10.2008, 17:49
Ответы с готовыми решениями:

Оператор if изменить на randomize
Оператор if изменить на randomize : var x,y:integer; c:char; begin write('VV napravlenie (C...

Метод randomize инициализирует только первый оператор случайных чисел, или все сразу, идущие после него в коде?
То есть, например, есть код: randomize; x:=random(100); y:=random(200); for i:=1 to...

Неправильно работает Randomize()
Здравствуйте, функция случайности, как то странно работает. void __fastcall...

Не работает randomize в Dev C++
https://www.cyberforum.ru/attachment.php?attachmentid=450146&stc=1&d=1415027894

5
Почетный модератор
6969 / 2482 / 238
Регистрация: 29.07.2006
Сообщений: 13,277
14.10.2008, 17:54 2
Основанием может являться текущее время, которое никогда не бывает одинаковым.
Остальное делается алгоритмом. можешь в ее исходники заглянуть. А еще в инете полно рукописных рандомайзеров. Там тоже можно найти забавные идеи.
1
4 / 4 / 1
Регистрация: 25.11.2008
Сообщений: 41
26.11.2008, 21:21 3
Существуют выборки случайных чисел, номер выборки можно выбрать и самому в большинстве языков, привязать его к номеру процесса, микровремени (времени в микросекундах) и тп. короче ко всему, что не может быть предусмотрено заранее
1
365 / 68 / 2
Регистрация: 25.09.2008
Сообщений: 401
27.11.2008, 16:28 4
если коротко, то для рандомайза во первых используются комбинаторные функции, которые реализуют псевдослучайную последовательность, непомню уже как их высчитывать, на первом курсе проходили, но при желании можно в инете поискать
а потом уже на эту псевдослучайную последовательность различными способами накладывают процессорное время +) умножают, ксорят и т.п. +)
1
9 / 9 / 2
Регистрация: 18.08.2008
Сообщений: 127
27.11.2008, 17:52 5
примитивный рандомайз можно взять из следующего принципа
следующее число (меньше 1 разумеется) получается как дробная часть от 1 деленного на предыдущее .
то есть
r1=0.12345
r2= дробная часть от 1/0.12345=0.1004455
r3=дробная часть от 1/0.1004455=0.88995545
..
можно первое задавать наобум и наобум пропускать числа в этой последовательности .
1
Эксперт С++
2919 / 1268 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
27.11.2008, 21:27 6
Цитата Сообщение от Vince Посмотреть сообщение
У меня вопрос общего характера: как компьютер выбирает "случайный" вариант?
Коротко: все последовательности являются псевдослучайными.
Если интересуют конкретные алгоритмы вычисления - ну, например, скачиваешь Boost с www.boost.org, потом лезешь в каталог boost/random и наслаждаешься исходниками.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2008, 21:27

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

При randomize timer: пишет invalid outside procedure и указывает на randomize Timer
почему в к примеру таком коде: Randomize Timer Dim tm As Integer Private Sub Timer1_Timer() tm...

Как работает оператор if?
Народ! Операция сравнения возвращает ЧИСЛО, т.е. while и if принимают ЧИСЛО (0 - false, etc -...

Как работает оператор >>
Помогите понять что тут происходит, желательно по подробнее, что б потом сам мог это использовать....

Как работает оператор new?
Обязательно ли использовать оператор delete в коде (см.ниже.).После использования оператора new...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.