С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/50: Рейтинг темы: голосов - 50, средняя оценка - 4.70
320 / 280 / 109
Регистрация: 27.09.2010
Сообщений: 1,058

Можно ли предугадать Random

29.11.2012, 11:55. Показов 9850. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Появился у меня такой вопрос. Если взять интернет рулетку, где время между ставками известно и фиксировано, то в ней для генерации чисел и цвета применяется random. Я думаю и C# и Java генерируют числа на основе миллисекунд, прошедших с 1970 года. Если известны интервалы между генерациями чисел, может возможно проследить за ставками, и выявить закономерность.
P.S. Выигрыш в рулетку интересует постольку по сколько.... Тут чисто математический интересен. Можно ли подобрать закономерность...
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.11.2012, 11:55
Ответы с готовыми решениями:

Можно ли предугадать,что выведет метод Random.Next и можно посмотреть сам этот класс?(код)
Можно ли предугадать,что выведет метод Random.Next и можно посмотреть сам этот класс?(код)

Random.Next можно ли вывести значение?
Здравствуйте! Я создаю новое случайное число, а затем хочу вывести его на консоль. Но только вместо числа пишется тип данных что ли я не...

Можно ли брать RANDOM с буквы?
Можно ли брать RANDOM с буквы? Если да, то как? :umnik:

6
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
29.11.2012, 12:01
Лучший ответ Сообщение было отмечено как решение

Решение

Рандом специально разрабатывается так, чтоб предсказать следующее значение по предыстории было не возможно даже в том случае, если априорно и абсолютно точно знаешь саму последовательность. С какого места она запущена всё равно не опеределишь. Это ключевой пункт ТЗ на любой рандом: функция должна гарантировать не предсказуемость даже в том случае, если известна предыстория и априорно точно и целиком известна сама генерируемая последовательность.
Цитата Сообщение от titans2011 Посмотреть сообщение
Я думаю и C# и Java генерируют числа на основе миллисекунд, прошедших с 1970 года.
А чем эти миллисекунды посолены? А на сколько точно поставлены часы у тебя и на сервере? А сколько времени проведёт в пинге следующий запрос? А сколько точно миллисекунд займёт сам клик крысой?
2
 Аватар для VladislavTepes
80 / 80 / 14
Регистрация: 27.06.2012
Сообщений: 555
Записей в блоге: 1
29.11.2012, 12:12
Цитата Сообщение от titans2011 Посмотреть сообщение
Я думаю и C# и Java генерируют числа на основе миллисекунд, прошедших с 1970 года.
Что,простите?Откуда такая информация?
0
320 / 280 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
29.11.2012, 13:26  [ТС]
Цитата Сообщение от taras atavin Посмотреть сообщение
А на сколько точно поставлены часы у тебя и на сервере? А сколько времени проведёт в пинге следующий запрос? А сколько точно миллисекунд займёт сам клик крысой?
Если взять теоретически большой кластер, который может примерно узнать время начала генерации и время конца. Можно путем перебора всех вариантов генерации узнать последовательность. Ведь есть же исходники функций , которые генерируют числа.Хотя вы правы. Возможно они сгенерировали базу на неделю в перед, и не парятся.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
29.11.2012, 13:44
Цитата Сообщение от titans2011 Посмотреть сообщение
Если взять теоретически большой кластер, который может примерно узнать время начала генерации и время конца. Можно путем перебора всех вариантов генерации узнать последовательность. Ведь есть же исходники функций , которые генерируют числа.Хотя вы правы. Возможно они сгенерировали базу на неделю в перед, и не парятся.
Во-первых долго подбирать. А во-вторых если предыстория короче самой последовательности, то не поможет. В идеале не должно помочь даже при разнице в длине предыстории и периода последовательности в один член, но это не вероятно. И ни примерное, ни даже точное время не даст ничего, так как казино могло посолить его чем угодно. Генерация миллиарда лишних членов, умножение времени на множитель, сложение с днём рождения младшего сына сестры знакомой из другого города школьного друга соседа по лестничной площадке деда вчера виденного прохожего....
0
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
29.11.2012, 17:42
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
        public Random() : this(Environment.TickCount)
        {
        }
        /// <summary>Инициализирует новый экземпляр класса <see cref="T:System.Random" /> с помощью указанного начального значения.</summary>
        /// <param name="Seed">Число, используемое для вычисления начального значения последовательности псевдослучайных чисел. Если задано отрицательное число, используется его абсолютное значение. </param>
        /// <exception cref="T:System.OverflowException">
        ///           Значение <paramref name="Seed" /> равно <see cref="F:System.Int32.MinValue" />, вызвавшее переполнение при вычислении его абсолютного значения. </exception>
        public Random(int Seed)
        {
            int num = 161803398 - Math.Abs(Seed);
            this.SeedArray[55] = num;
            int num2 = 1;
            for (int i = 1; i < 55; i++)
            {
                int num3 = 21 * i % 55;
                this.SeedArray[num3] = num2;
                num2 = num - num2;
                if (num2 < 0)
                {
                    num2 += 2147483647;
                }
                num = this.SeedArray[num3];
            }
            for (int j = 1; j < 5; j++)
            {
                for (int k = 1; k < 56; k++)
                {
                    this.SeedArray[k] -= this.SeedArray[1 + (k + 30) % 55];
                    if (this.SeedArray[k] < 0)
                    {
                        this.SeedArray[k] += 2147483647;
                    }
                }
            }
            this.inext = 0;
            this.inextp = 21;
            Seed = 1;
        }
Пожалуйста.. книгу Кнута в руки и предугадывай

p.s.Упорством и тонким расчетом можно обойтись без Ванги,но старания канут в лету
0
320 / 280 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
29.11.2012, 17:57  [ТС]
Ну вот. Алгоритм уже известен. Осталось написать распределенное вчисление.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.11.2012, 17:57
Помогаю со студенческими работами здесь

Как можно заменить random?
program mas; var a: array of integer; i,j,s,n,m: integer; begin write('vvedite razmer massiva n,m: '); readln(n,m); ...

Предугадать результат
Здраствуйте, очень надо, скажите пожалуста, можно ли предугадать следующий результат Генератора Случайных Чисел по предыдущим результатам с...

На что можно заменить random в данной программе?
Помогите пожалуйста...На что можно заменить random в данной программе? const n=10; type mas = array of integer; ...

Можно ли вывести случайную последовательность не используя random?
Можно ли создать программу на паскале, чтобы она выводила случайное число. (ПРИ ЭТОМ НЕ ИСПОЛЬЗОВАТЬ ФУНКЦИЮ РАНДОМ, РАНДОМАЙЗ ИЛИ ЧТО В...

Можно в функции random() написать не числа, а слова
Можно в функции random() написать не числа, а слова, например написать 5 названий цветов, которые рандомно будут выбираться по одному и...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru