Re[2]: Придумал способ получать действительно случайные числ
От: sikorsky Украина  
Дата: 24.10.07 14:45
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>На однопроцессорном компьютере такой алгоритм будет очень предсказуем. На многопроцессорных — тоже.


Мне все-таки было бы интересно узнать конкретно как его можно предсказать?

C>Посмотрите как сделан /dev/random в Линуксе, например.

Не буду смотреть так как не в этом дело..
Re[10]: Придумал способ получать действительно случайные чис
От: deniok Россия  
Дата: 24.10.07 14:48
Оценка: +1
Здравствуйте, sikorsky, Вы писали:

S>Стоп. Если алгоритм случайных чисел выдаст вдруг подряд 10 одинаковых чисел, он плох? В реальной жизни так бывает.


Он хорош, если, грубо говоря, последовательность из 10 единиц (предположим, что выход — бинарный) встречается в нём с частотой 1/2^10.
Re[10]: Придумал способ получать действительно случайные чис
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 24.10.07 14:51
Оценка: +1
Здравствуйте, sikorsky, Вы писали:

[]

S>+ тогда можно говорить о причино-следственной связи и тогда не нет в мире ничего случайного вообще. Я не шучу щас. И даже хардверные генераторы не случайны


Вот, почитайте: http://en.wikipedia.org/wiki/Diehard_tests
Или еще вот: http://leo.yuriev.ru/114
<< Люди, не умеющие лгать, являются социально неадаптированными. >>
Re[11]: Придумал способ получать действительно случайные чис
От: sikorsky Украина  
Дата: 24.10.07 14:52
Оценка:
Здравствуйте, deniok, Вы писали:

D>Он хорош, если, грубо говоря, последовательность из 10 единиц (предположим, что выход — бинарный) встречается в нём с частотой 1/2^10.


Так а о том и речь, что вряд-ли предложенный алгоритм способен сгенерировать подряд 10 одинаковых строк длинной 20 000 символов. Да даже и две. А уж как эти разные строки привести к удобному выводимому результату (например, к 0м и 1м), это другой вопрос. Главное, что за основу берется непредсказуемая штука, а не, как в случае с систем.рандом, текущее время (если, конечно, не определено другое)
Re[10]: Придумал способ получать действительно случайные чис
От: nikov США http://www.linkedin.com/in/nikov
Дата: 24.10.07 14:58
Оценка:
Здравствуйте, sikorsky, Вы писали:

S>+ тогда можно говорить о причино-следственной связи и тогда не нет в мире ничего случайного вообще. Я не шучу щас. И даже хардверные генераторы не случайны


Современная квантовая механика базируется на постулате, что истинно случайные процессы все-таки есть.
Re[3]: Придумал способ получать действительно случайные числ
От: Cyberax Марс  
Дата: 24.10.07 15:17
Оценка: +1
Здравствуйте, sikorsky, Вы писали:

C>>На однопроцессорном компьютере такой алгоритм будет очень предсказуем. На многопроцессорных — тоже.

S>Мне все-таки было бы интересно узнать конкретно как его можно предсказать?
Прогнать алгоритм на похожем компьютере — и посмотреть что получаться будет.

Для криптоатаки часто будет достаточно знания поведения последовательности "случайных" чисел. Почитайте, например, как американцы вскрывали наши one-time pad'ы из-за дефектного ГСЧ.

C>>Посмотрите как сделан /dev/random в Линуксе, например.

S>Не буду смотреть так как не в этом дело..
-1, непризнаный гений.
Sapienti sat!
Re[12]: Придумал способ получать действительно случайные чис
От: deniok Россия  
Дата: 24.10.07 15:39
Оценка:
Здравствуйте, sikorsky, Вы писали:

S>Здравствуйте, deniok, Вы писали:


D>>Он хорош, если, грубо говоря, последовательность из 10 единиц (предположим, что выход — бинарный) встречается в нём с частотой 1/2^10.


S>Так а о том и речь, что вряд-ли предложенный алгоритм способен сгенерировать подряд 10 одинаковых строк длинной 20 000 символов. Да даже и две. А уж как эти разные строки привести к удобному выводимому результату (например, к 0м и 1м), это другой вопрос. Главное, что за основу берется непредсказуемая штука, а не, как в случае с систем.рандом, текущее время (если, конечно, не определено другое)


Вопрос как раз в мере непредсказуемости. Для идеального источника "случайности" энтропия должна быть максимальна. Тебе уже приводили ссылки на тесты — погоняй результаты своего генератора на приличном test suite. А ещё лучше — почитай учебники.
Re[11]: Придумал способ получать действительно случайные чис
От: sikorsky Украина  
Дата: 24.10.07 16:10
Оценка: :))
Здравствуйте, nikov, Вы писали:

N>Современная квантовая механика базируется на постулате, что истинно случайные процессы все-таки есть.


Врут
Re[3]: Придумал способ получать действительно случайные числ
От: Константин Россия  
Дата: 24.10.07 16:53
Оценка: +1
Здравствуйте, sikorsky, Вы писали:


К>>Какое распределение?

К>>Какие тесты случайности проходят?
К>>Если на эти вопросы ответа нет, то в библиотеку и читать Кнута (или что-то подобное, по-вкусу)

S>Распределение количества 0 и 1 в результирующей строке каждый раз будет разным, потому как если два потока одновременно что-то делают, то нет возможности предсказать когда конкретный поток получит свой квант процессорног времени. Да и окружение в котором работает программа вряд ли можно воспроизвести.

Бог весть какой секрет

А всё-таки интересно было бы узнать насколько же случайной получается последовательность.
Есть разные тесты для проверки случайности. Интересно было бы глянуть какие проходятся, а какие нет.
Иначе ценность даже не нулевая, а отрицательная. За использования генератора без известных характеристик
нужно (убивать, закапывать, кастрировать, гладить по головке, повышать в должности, давать в морду)-ненужное зачеркнуть.
Re[4]: Придумал способ получать действительно случайные числ
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 24.10.07 17:29
Оценка:
Здравствуйте, Константин, Вы писали:

[]

К>А всё-таки интересно было бы узнать насколько же случайной получается последовательность.

К>Есть разные тесты для проверки случайности. Интересно было бы глянуть какие проходятся, а какие нет.
К>Иначе ценность даже не нулевая, а отрицательная. За использования генератора без известных характеристик
К>нужно (убивать, закапывать, кастрировать, гладить по головке, повышать в должности, давать в морду)-ненужное зачеркнуть.

Да чего там проверять Создал я Win Application в 2003 студии, добавил туда этот класс случайных чисел, переделал вывод в файл. В файле — 19 Кб одних нулей. И так при каждом вызове. Запускал из под студии прямо. Супер случайные числа Разбираться в чем дело не стал (подозреваю, что поток не отрабатывал, ну да плевать), но это показывает степень "случайности чисел", получаемых таким алгоритмом.
<< Рабство не отменено — оно сменилось 8-часовым рабочим днем. >>
Re: Придумал способ получать действительно случайные числа
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 24.10.07 18:13
Оценка: +1 -1
Здравствуйте, sikorsky, Вы писали:

S>Метод RandomizedBit сейчас работает глупо. Распределение результатов в среднем не 50 на 50. Но это ОЧЕНЬ легко исправить. Достаточно получить хэш от результирующей строки и уже с этим хэшем производить вычисления. (при изменении строки хотя бы на один символ хэш будет абсолютно другим).

А как ты проверял что 50 на 50. У меня всего 1000 чисел минут 8 генерировались, и все единицы.

код:
       static void Main(string[] args)
        {
            RealRnd rnd = new RealRnd();
            int[] c = new int[2];

            for (int i = 0; i < 1000; i++)
           {
                rnd.Compute();
                int r = rnd.RandomizedBit;
            c[r]++;
                
        }
            Console.WriteLine(c[0]);
            Console.WriteLine(c[1]);
            Console.ReadKey();
        }




S>Ну что же, хотелось бы узнать мнения.

Говно
Re[2]: Придумал способ получать действительно случайные числ
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 24.10.07 18:16
Оценка:
Здравствуйте, gandjustas, Вы писали:


G>А как ты проверял что 50 на 50. У меня всего 1000 чисел минут 8 генерировались, и все единицы.


Угу, вот и у меня похожая ситуёвина: Re[4]: Придумал способ получать действительно случайные числ
Автор: Flamer
Дата: 24.10.07


S>>Ну что же, хотелось бы узнать мнения.

G>Говно

Пожалуй, буду краток: согласен.
<< Если человек рождается бедным и некрасивым, то в дальнейшем он имеет много шансов развить оба этих качества. >>
Re[2]: Придумал способ получать действительно случайные числ
От: deniok Россия  
Дата: 24.10.07 18:18
Оценка: :)
Здравствуйте, gandjustas, Вы писали:

G>Здравствуйте, sikorsky, Вы писали:


S>>Метод RandomizedBit сейчас работает глупо. Распределение результатов в среднем не 50 на 50. Но это ОЧЕНЬ легко исправить. Достаточно получить хэш от результирующей строки и уже с этим хэшем производить вычисления. (при изменении строки хотя бы на один символ хэш будет абсолютно другим).

G>А как ты проверял что 50 на 50. У меня всего 1000 чисел минут 8 генерировались, и все единицы.

Ну вот, а здесь
Автор: Flamer
Дата: 24.10.07
сплошные нули. Случайность — налицо
Re[3]: Придумал способ получать действительно случайные числ
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 24.10.07 18:19
Оценка: :)))
Здравствуйте, deniok, Вы писали:

D>Здравствуйте, gandjustas, Вы писали:


G>>Здравствуйте, sikorsky, Вы писали:


S>>>Метод RandomizedBit сейчас работает глупо. Распределение результатов в среднем не 50 на 50. Но это ОЧЕНЬ легко исправить. Достаточно получить хэш от результирующей строки и уже с этим хэшем производить вычисления. (при изменении строки хотя бы на один символ хэш будет абсолютно другим).

G>>А как ты проверял что 50 на 50. У меня всего 1000 чисел минут 8 генерировались, и все единицы.

D>Ну вот, а здесь
Автор: Flamer
Дата: 24.10.07
сплошные нули. Случайность — налицо


Я понял смыл: на 50% компьютеров единицы, на 50% — нули
Re[2]: Придумал способ получать действительно случайные числ
От: sikorsky Украина  
Дата: 24.10.07 21:06
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Здравствуйте, sikorsky, Вы писали:


S>>Метод RandomizedBit сейчас работает глупо. Распределение результатов в среднем не 50 на 50. Но это ОЧЕНЬ легко исправить. Достаточно получить хэш от результирующей строки и уже с этим хэшем производить вычисления. (при изменении строки хотя бы на один символ хэш будет абсолютно другим).

G>А как ты проверял что 50 на 50. У меня всего 1000 чисел минут 8 генерировались, и все единицы.

G>код:

G>
G>       static void Main(string[] args)
G>        {
G>            RealRnd rnd = new RealRnd();
G>            int[] c = new int[2];

G>            for (int i = 0; i < 1000; i++)
G>           {
G>                rnd.Compute();
G>                int r = rnd.RandomizedBit;
G>            c[r]++;
                
G>        }
G>            Console.WriteLine(c[0]);
G>            Console.WriteLine(c[1]);
G>            Console.ReadKey();
G>        }
G>




S>>Ну что же, хотелось бы узнать мнения.

G>Говно

Мда... Для начала можно было просто потрудиться и прочитать, что RandomizedBit просто пример! Суть не в этом свойстве.
Re: Придумал способ получать действительно случайные числа
От: sikorsky Украина  
Дата: 24.10.07 21:09
Оценка:
Короче. Я так понял что все всЁ понимают очень буквально. ОК. Завтра заменю свойство РАндомайздБит чем-то более реальным. Интересно.
Re[2]: Придумал способ получать действительно случайные числ
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 24.10.07 21:18
Оценка: +2
Здравствуйте, sikorsky, Вы писали:

S>Короче. Я так понял что все всЁ понимают очень буквально. ОК. Завтра заменю свойство РАндомайздБит чем-то более реальным. Интересно.


Короче. Я не юзал RandomizeBit. Я смотрел в RandomizedString — одни нули. ОК. Сегодня же прекратите. А то уже неинтересно.
<< Грустно, когда идешь на кладбище. И уж особенно грустно — когда там остаешься. >>
Re: Придумал способ получать действительно случайные числа
От: baily Россия  
Дата: 25.10.07 07:24
Оценка:
Здравствуйте, sikorsky, Вы писали:

S>Здравствуйте!


S>Возможно, способ предложенный мной уже кому-то знаком. Однако, он пришел мне в голову буквально минут 30 назад (не украл ). Такого поиском вроде не нашел. Я его реализовал и проверил. Действительно, этот код дает возможность получения непредсказуемых (невоспроизводимых?) последовательностей! Для простоты сдел максимально просто. Класс позволяет получить случайный бит. 1 или 0.


Неиссякает поток Кулибиных, шлющих свои доказательства об изобретении вечного двигателя, о решении теоремы Ферма, и т.д и т.п. При этом у всех таких доказательств есть общее свойство, что в них не используется ничего сложнее, чем перенос в уравнении из левой части в правую, а у авторов отсутствует знакомство с элементарными работами, посвященными данному вопросу
Re[3]: Придумал способ получать действительно случайные числ
От: CreatorCray  
Дата: 25.10.07 07:31
Оценка:
Здравствуйте, sikorsky, Вы писали:

S>>>Ну что же, хотелось бы узнать мнения.

G>>Говно
Согласен с предыдущим оратором

S>Мда... Для начала можно было просто потрудиться и прочитать, что RandomizedBit просто пример! Суть не в этом свойстве.

Вообще то принято выкладывать алгоритмы в завершенном виде. Т.е. раз это генератор случайных чисел то у него обязательно должна быть функция, которая возвращает конечный результат. В данном случае некое случайное значение.
Так что отмазка не прокатила.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Придумал способ получать действительно случайные числ
От: CreatorCray  
Дата: 25.10.07 07:31
Оценка: +1
Здравствуйте, Flamer, Вы писали:

S>>Короче. Я так понял что все всЁ понимают очень буквально. ОК. Завтра заменю свойство РАндомайздБит чем-то более реальным. Интересно.

F>Короче. Я не юзал RandomizeBit. Я смотрел в RandomizedString — одни нули. ОК. Сегодня же прекратите. А то уже неинтересно.
Через это крайне интересует вопрос: а аффтар свой алгоритм вообще тестировал?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.