Случайные числа

Тема в разделе "WASM.A&O", создана пользователем c_plus_plus, 9 авг 2008.

  1. c_plus_plus

    c_plus_plus New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    2
    Привет всем :)
    Помогите плиззззз
    Пытаясь что-то сделать из известных мне генераторов случайных чисел, я обнаружил, что это просто одинаковые последовательности, ну или почти одинаковые. Алгоритмы собственно и есть псевдо :) при делании из них например белого шума ничего не выходит.

    Услышал что можно не привязываяь к железу родить случайную последовательность (чисто математически).

    Есть какие-нибуть идеии?

    И ещё, трудность в том, что это не прост числа, а очень очень длинные числа, как например 100!
     
  2. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    CryptGenRandom не пробовал?
     
  3. chAlx

    chAlx New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2008
    Сообщения:
    74
    c_plus_plus:

    Что значит, "одинаковые последовательности"? Алгоритмы построены так, чтобы выдавать последовательности с заданным распределением (обычно как раз на белый шум ориентируются).

    А откуда начать отсчёт, это уже вопрос другого алгоритма. Обычно привязываются к таймеру и ещё каким-нибудь непостоянным аппаратным ресурсам.
     
  4. RElf

    RElf New Member

    Публикаций:
    0
    Регистрация:
    25 дек 2004
    Сообщения:
    159
    см. статью ГПСЧ в википедии
     
  5. c_plus_plus

    c_plus_plus New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    2
    Я пользовался стандартной библтотекой и ещё несколькими, какие попались. Но он что-то не получаеться. Сейчас у меня от случайных чисел зависет траиктория обьекта. Она почти одна и таже. Ну, например он должен выбирать путь к точке по разным, не похожим кривым, но так не получаеться. Когда записал несколько полследовательностей чисел и сравнил, они отличались всего несколькими числами (из 20 - 1, 2) :dntknw:

    CryptGenRandom - это от куда?


    А за статью спасибо, сча посмотрю
     
  6. s0larian

    s0larian New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    489
    Адрес:
    Крыжёпполь
    c_plus_plus, на С:
    Код (Text):
    1. srand(time());
    2. i = rand();
     
  7. bsnake

    bsnake New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2005
    Сообщения:
    91
    CryptGenRandom - это из Microsoft CryptoAPI

    srand(time()); использовать очень не безопасно, как и ГПСЧ. Если востановили\узнали одно значение ГПСЧ то все последующие и предыдущие высчитываются тривиально. А при иннициализации ГПСЧ текущем временем, очень легко атаковать шифр, если знать приблизительное время на хосте, с погрешностью +- 5 мин это получается 600000 возможных вариантов если time() возвращает с точностью до миллисекунды(или с точностью до секунды, я не уверен)

    Вывод юзай CryptoAPI, качественный rand при минимуме телодвижений. Или время от времени переинициализуй ГПСЧ данными которые нельзя предсказать (статистика сетевого трафик, движения мышкой, нажатия клавиатуры и т.п.)
     
  8. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    Ещё можно считать такты ЦП.
    RDTSC в помощь
     
  9. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    rdtsc
    bswap eax