Поиск:

Ответ в темуСоздание новой темы Создание опроса
> генераторы _псевдо_случайных чисел, как они работаюти почему всегда_псевдо_? 
:(
    Опции темы
esperant0
Дата 24.2.2006, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 714
Регистрация: 20.5.2005

Репутация: 4
Всего: 14



Цитата(Fin @ 24.2.2006, 21:34)
  Все генераторы, построенные на математических моделях, имеют цикл повторяемости. 

Нет не все!


--------------------
 
 Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer 

Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором  а затем стерто и которое он - пользователь не мог видеть. 
PM MAIL   Вверх
Fin
Дата 24.2.2006, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


Профиль
Группа: Участник
Сообщений: 687
Регистрация: 4.1.2006

Репутация: 1
Всего: 10



esperant0, Примерчик пожайлуста в студию.


--------------------
Пролетал мимо.
PM MAIL   Вверх
Alx
Дата 24.2.2006, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: нет
Всего: 78



Fin,
а чем твой си-шный пример лучше моего?
зачем все эти функции, если можно просто брать текущее время, как случайное число?


--------------------
PM MAIL WWW ICQ   Вверх
Fin
Дата 24.2.2006, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


Профиль
Группа: Участник
Сообщений: 687
Регистрация: 4.1.2006

Репутация: 1
Всего: 10



Если у твоего примера последовательно через равный промежуток времени брать запрос, то и получится результат такой же. Т.е. потеряется элемент псевдослучайности.
Твой пример хорош для разовой выемки. Но не для последовательной и целенаправленной.


--------------------
Пролетал мимо.
PM MAIL   Вверх
esperant0
Дата 24.2.2006, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 714
Регистрация: 20.5.2005

Репутация: 4
Всего: 14



Цитата(Fin @ 24.2.2006, 22:39)
esperant0, Примерчик пожайлуста в студию.

Пусть генератор выдает последовательно цифры числа пи.


--------------------
 
 Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer 

Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором  а затем стерто и которое он - пользователь не мог видеть. 
PM MAIL   Вверх
Fin
Дата 24.2.2006, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


Профиль
Группа: Участник
Сообщений: 687
Регистрация: 4.1.2006

Репутация: 1
Всего: 10



Ты число pi расчитай сначало. Насколько я знаю, один немец недавно дошел до миллиардного знака. Можно конечно и число e считать. Только там факториалы идут в делителе формулы. И получается что формулу сложнее расчитать smile


--------------------
Пролетал мимо.
PM MAIL   Вверх
esperant0
Дата 25.2.2006, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 714
Регистрация: 20.5.2005

Репутация: 4
Всего: 14



Цитата(Fin @ 24.2.2006, 23:30)
Ты число pi  расчитай сначало. Насколько я знаю, один немец недавно дошел до миллиардного знака. Можно конечно и число e считать. Только там факториалы идут в делителе формулы. И получается что формулу сложнее расчитать smile

К вашему сведению, известен способ вычисляющий любую цифру числа пи, не считая ВСЕ предыдущие чифры.

Причем формула то не слишком сложная


Так что ваше замечание не состоятельно %)

Это сообщение отредактировал(а) esperant0 - 25.2.2006, 00:31


--------------------
 
 Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer 

Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором  а затем стерто и которое он - пользователь не мог видеть. 
PM MAIL   Вверх
Alx
Дата 25.2.2006, 01:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: нет
Всего: 78



блин, ну это же каждый раз будут одни и те же цифры
3, 1, 4, 1, 5, 9, 2, 6, 5...
smile smile

как думаете, можно как-нибудь сделать ГСЧ, основанный на Брауновском движении (беспорядочном движении мельчайших тел)?

Это сообщение отредактировал(а) Alx - 25.2.2006, 01:36


--------------------
PM MAIL WWW ICQ   Вверх
maxim1000
Дата 25.2.2006, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



Цитата

К вашему сведению, известен способ вычисляющий любую цифру числа пи, не считая ВСЕ предыдущие чифры.

у компьютера конечная память + конечное количество состояний процессора - это все можно назвать его состоянием
количество таких состояний конечно
состояние на следующем такте при отсутствии внешних воздействий (как, например, при исполнении какого-то вычислительного алгоритма) будет полностью определяться состоянием на предыдущем
а это, в свою очередь, означает, что будет зацикливание максимум через N шагов (N - количество разных состояний системы)
Добавлено @ 02:03
другое дело, что количество таких состояний огромно - что-то типа 2^(количество бит в памяти), но принципиально это дела не меняет...


--------------------
qqq
PM WWW   Вверх
esperant0
Дата 25.2.2006, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 714
Регистрация: 20.5.2005

Репутация: 4
Всего: 14



Цитата(maxim1000 @ 25.2.2006, 02:02)
в свою очередь, означает, что будет зацикливание максимум через N шагов (N - количество разных состояний системы)
Добавлено @ 02:03
другое дело, что количество таких состояний огромно - что-то типа 2^(количество бит в памяти), но принципиально это дела не меняет...

Если период генератора равен Х, а программе нужно количество случайных числел меньшее Х, то периода вроде как и нет.



Для примера. Компьютер с 2^40 бит памяти, будет иметь такой огромный период, что мы просто не успеем пройтись по нему.
Добавлено @ 10:56
Цитата(Alx @ 25.2.2006, 01:30)
блин, ну это же каждый раз будут одни и те же цифры

А что вы думаете, в других генераторах при одном и том же сиид, будут разные цифры.


Кроме того можно начинать выводить цифры числа начиная с некоторой цифры числа х.

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

В 3-х, кроме числа пи, можно использовать богатое множ-во иррациональных чисел

Это сообщение отредактировал(а) esperant0 - 25.2.2006, 10:57


--------------------
 
 Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer 

Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором  а затем стерто и которое он - пользователь не мог видеть. 
PM MAIL   Вверх
maxim1000
Дата 25.2.2006, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



Цитата(esperant0 @ 25.2.2006, 09:52 Найти цитируемый пост)
Если период генератора равен Х, а программе нужно количество случайных числел меньшее Х, то периода вроде как и нет.

Для примера. Компьютер с 2^40 бит памяти, будет иметь такой огромный период, что мы просто не успеем пройтись по нему

аааа... так неинтересно smile
тогда и нет принципиальных отличий от других генераторов (например, линейных сдвиговых регистров)
кроме того если в тех же ЛСР память и процессорное время используется практически оптимально - очень простые операции, то при вычислении цифр иррациональных чисел алгоритмы вряд ли смогут быть проще, а, наверное, будут сложнее...
да и есть ли универсальные алгоритмы для большого количества иррациональных чисел?

Цитата(esperant0 @ 25.2.2006, 09:52 Найти цитируемый пост)
Кроме того, не всегда плохо что выдаються одни и те же цифры. Пусть у вас есть программа симуляции, и вы прогоняете ее единожды на цифрах числа пи. Все будет в порядке

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


--------------------
qqq
PM WWW   Вверх
esperant0
Дата 25.2.2006, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 714
Регистрация: 20.5.2005

Репутация: 4
Всего: 14



Цитата(maxim1000 @ 25.2.2006, 13:40)
Цитата(esperant0 @  25.2.2006,  09:52 Найти цитируемый пост)
Если период генератора равен Х, а программе нужно количество случайных числел меньшее Х, то периода вроде как и нет.

Для примера. Компьютер с 2^40 бит памяти, будет иметь такой огромный период, что мы просто не успеем пройтись по нему

аааа... так неинтересно smile
тогда и нет принципиальных отличий от других генераторов (например, линейных сдвиговых регистров)
кроме того если в тех же ЛСР память и процессорное время используется практически оптимально - очень простые операции, то при вычислении цифр иррациональных чисел алгоритмы вряд ли смогут быть проще, а, наверное, будут сложнее...
да и есть ли универсальные алгоритмы для большого количества иррациональных чисел?

Цитата(esperant0 @ 25.2.2006, 09:52 Найти цитируемый пост)
Кроме того, не всегда плохо что выдаються одни и те же цифры. Пусть у вас есть программа симуляции, и вы прогоняете ее единожды на цифрах числа пи. Все будет в порядке

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

Принципиальное отличие есть. В пи период ограничен возможностью существующих ЭВМ, а в других генераторах он ограничен заранее.



--------------------
 
 Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer 

Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором  а затем стерто и которое он - пользователь не мог видеть. 
PM MAIL   Вверх
Fin
Дата 25.2.2006, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


Профиль
Группа: Участник
Сообщений: 687
Регистрация: 4.1.2006

Репутация: 1
Всего: 10



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


--------------------
Пролетал мимо.
PM MAIL   Вверх
esperant0
Дата 25.2.2006, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 714
Регистрация: 20.5.2005

Репутация: 4
Всего: 14



Цитата(Fin @ 25.2.2006, 17:35)
esperant0, Я хочу попасть в книгу рекордов Гинесса. Поделись пожайлуста алгоритмом вычисления числа Пи. Вычислю вот триллион знаков после запятой. И будет мне счастье. А то немец что то мелочится, всего то миллиард с копейками знаков после запятой. smile

напишите в Гоогле, алгоритм для вычисления цифр числа пи. ( на английском), немного покапайтесь.


И будет вам счастье.
Я в свое время нашел. Теперь ваша очередь.


--------------------
 
 Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer 

Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором  а затем стерто и которое он - пользователь не мог видеть. 
PM MAIL   Вверх
Alx
Дата 26.2.2006, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: нет
Всего: 78



а что если взять любое число n, больше 1, а затем поочередно выполнять выражения

Код

n = n^n;
n = n^(n/1);

?

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

попробывал, получается высокая степень случайности:

http://soft.flyweb.in/small/rand.html

Код

var exp = "inverse";
var num = Math.PI; // берём любое число, большее единицы. ( PI; 2; 0,45; E, 10000 и т.п. )

stop_func = false; // контроллер функции
var all_arr = []; // будущий массив чисел-сумм

onload=function() {inf_int(num);}

function inf_int(n)
{  var sum = 0; // обозначаем переменную-сумму всех цифр иррационального числа
   n = (exp == "inverse") ? Math.pow(n,1/n) : Math.pow(n,n); // непосредственно выполняем возведение в степень
   exp = (exp == "inverse") ? "front" : "inverse"; // и меняем переменную
   var str = n.toString().replace(".","");
   
   sum = parseInt(str);
   while(str.length>1) // подсчет суммы цифр
   {   sum=0;
       for (i=0;i<str.length;i++)
       {   sum+=parseInt(str.charAt(i));
       }
       str = sum.toString();
   }

   all_arr.push(sum); // добавляем в итоговый массив новое число-сумму

   if (!stop_func) // вывод результатов и перезапуск функции; в параметр передаём новое число "n"
   {   document.body.innerHTML += "<b>" + sum + "</b> <= " + n + "<br>";
       setTimeout("inf_int('"+n+"')",400);
   }

}

Добавлено @ 23:15
функция ещё высчитывает однозначное число для каждого значения pi, поочерёдно складывая в нем все цифры, вот так:

Код

sum = 1+2+3+4+5+6+7+8+9
sum = 4+5
sum = 9


Это сообщение отредактировал(а) Alx - 27.2.2006, 01:50


--------------------
PM MAIL WWW ICQ   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.2924 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.