+ Ответить в теме
Показано с 1 по 8 из 8

Тема: Scratch

  1. #1
    Кубик мишика is on a distinguished road
    Регистрация
    05.12.2015
    Возраст
    14
    Сообщений
    1
    Вес репутации
    0

    По умолчанию Scratch

    Как сделать чтобы при выдачи случайного числа оно не повторялось

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    Недохакер system architect Сионист is an unknown quantity at this point Аватар для Сионист
    Регистрация
    31.03.2014
    Сообщений
    1,078
    Вес репутации
    0

    По умолчанию Re: Scratch

    А как Вы заставили его повторяться? Так:
    Код cpp:
    1. int x=rand();
    2. std::cout<<x<<std::endl;
    3. std::cout<<x<<std::endl;
    что ли?
    Последний раз редактировалось Сионист; 09.12.2015 в 07:41.
    Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.

  4. #3
    coder Din666 will become famous soon enough Din666 will become famous soon enough Аватар для Din666
    Регистрация
    17.07.2015
    Адрес
    Moscow
    Сообщений
    48
    Вес репутации
    5

    По умолчанию Re: Scratch

    При использовании генераторов случайных чисел обычно задается также случайно его начальное состояние, что практически предотвращает повторение чисел при генерации. В том числе советую попробовать различные генераторы.

  5. #4
    Недохакер system architect Сионист is an unknown quantity at this point Аватар для Сионист
    Регистрация
    31.03.2014
    Сообщений
    1,078
    Вес репутации
    0

    По умолчанию Re: Scratch

    А при чём здесь начальное состояние?
    Код cpp:
    1. srand(0);
    2. std::cout<<rand()<<std::endl;
    3. std::cout<<rand()<<std::endl;
    Начальное состояние детерменировано, но числа совпадать не могут.
    Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.

  6. #5
    coder Din666 will become famous soon enough Din666 will become famous soon enough Аватар для Din666
    Регистрация
    17.07.2015
    Адрес
    Moscow
    Сообщений
    48
    Вес репутации
    5

    По умолчанию Re: Scratch

    Сионист: честно говоря вопрос Кубик мишики не привязан к ситуации, поэтому я предположил, что он несколько раз запускает свою программу и результаты каждого запуска повторяются.

  7. #6
    Недохакер system architect Сионист is an unknown quantity at this point Аватар для Сионист
    Регистрация
    31.03.2014
    Сообщений
    1,078
    Вес репутации
    0

    По умолчанию Re: Scratch

    А ну тогда начальное состояние на основе любой величины, которая будет меняться от запуска к запуску. Хоть на основе текущего системного времени. Можно ещё посолить это время. Но ни как не
    Код cpp:
    1. srand(rand);
    , так как в этом случае параметр srad тоже повторится. Идеальный вариант - аппаратный генератор истинно случайных чисел. Но это на обычной офисной/домашней машине это не достижимо.
    Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.

  8. #7
    system architect somewhere will become famous soon enough somewhere will become famous soon enough Аватар для somewhere
    Регистрация
    31.08.2006
    Адрес
    71 RUS
    Возраст
    35
    Сообщений
    1,837
    Вес репутации
    16

    По умолчанию Re: Scratch

    Идеальный вариант - аппаратный генератор истинно случайных чисел. Но это на обычной офисной/домашней машине это не достижимо.
    Ну, истинно случайные никому не нужны. А аппаратный генератор уже создан by Intel. Инструкции RDRAND, RDSEED новых процессоров Intel
    It's a long way to the top if you wanna rock'n'roll

  9. #8
    Недохакер system architect Сионист is an unknown quantity at this point Аватар для Сионист
    Регистрация
    31.03.2014
    Сообщений
    1,078
    Вес репутации
    0

    По умолчанию Re: Scratch

    Ну это как раз те же псевдослучайные с переменным стартом, причём, от не квантового аппаратного генератора случайных чисел. Сам же интелл признаёт, что именно их аппаратный генератор случайных кривой и на большее, чем старт другого генератора, не годится. Но в связке получается один из хороших вариантов. Возможно даже лучше, чем старт rand от времени запуска программы. По крайней мере ителл обещает меньшую предсказуемость.
    Последний раз редактировалось Сионист; 22.12.2015 в 10:55.
    Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.

+ Ответить в теме

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения