2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3
 
 
Сообщение27.03.2008, 04:26 


24/12/06
59
незваный гость писал(а):
:evil:
Вы путаете две разных сущности: состояние датчика случайных чисел и выдаваемое им значение. Конкретно в Borland C 3.0, состояние — это 32 бита unsigned long, а выдаваемое значение — 15 бит signed int. Естественно, попытка трактовать выдаваемое значение как состояние не может увенчаться успехом.

именно это я и сказал :) но состояние датчика мы не можем узнать, если только...
Код:
unsigned seed(int x){ // x - возвращаемое значение rand();
   int tmp = -1;
   int i = 0;
   while(tmp != x){
      srand(i);
      tmp = rand();
      ++i;
   }
   return (i - 1);
}
но подобный подобные затраты не стоят результата...

незваный гость писал(а):
Проблема, затронутая мной, состоит в том, что для датчика случайных чисел являются нормальными повторы. Например, Вы кидаете кубик семь раз. Какое-нибудь из чисел обязательно выпадет дважды. Но это не значит, что следом за ним выпадет то же число, что и в первый раз. Может выпасть, может и не выпасть.

Алгорифмы Флойда и Брента молчаливо подразумевают, что если однажды произошло совпадение, оно будет происходить и в дальнейшем. И это делает их трудно адаптируемыми для проверки датчиков случайных чисел.

А можно пример по корректнее, ведь каждый бросок кубика не зависит от предыдущего...

 Профиль  
                  
 
 
Сообщение27.03.2008, 04:31 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
Марк писал(а):
менно это я и сказал Smile но состояние датчика мы не можем узнать, если только...
Код:
unsigned seed(int x){ // x - возвращаемое значение rand();
   int tmp = -1;
   int i = 0;
   while(tmp != x){
      srand(i);
      tmp = rand();
      ++i;
   }
   return (i - 1);
}

но подобный подобные затраты не стоят результата...

Даже это неверно. Кто сказал, что существует единственный $seed$, соответствующий $x$?!

Именно это является источником во второй части затруднений.

 Профиль  
                  
 
 
Сообщение30.03.2008, 14:28 


24/12/06
59
незваный гость писал(а):
Проблема, затронутая мной, состоит в том, что для датчика случайных чисел являются нормальными повторы. Например, Вы кидаете кубик семь раз. Какое-нибудь из чисел обязательно выпадет дважды. Но это не значит, что следом за ним выпадет то же число, что и в первый раз. Может выпасть, может и не выпасть.

Алгорифмы Флойда и Брента молчаливо подразумевают, что если однажды произошло совпадение, оно будет происходить и в дальнейшем. И это делает их трудно адаптируемыми для проверки датчиков случайных чисел.


незваный гость писал(а):
Даже это неверно. Кто сказал, что существует единственный $seed$, соответствующий $x$?!

Именно это является источником во второй части затруднений.

Точно! Мне кажется, я понял, что Вы имели ввиду... Спасибо за объяснения...

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу Пред.  1, 2, 3

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group