powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Случайный конь в вакууме
25 сообщений из 223, страница 7 из 9
Случайный конь в вакууме
    #39926315
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
...Станет ли от этого первый получившися байт хуже "вероятным"?..
Нет не станет. По Колмогорову: для случайной послед-сти любая подпослед-сть случайна.
Но автор хочет фсю её.
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39926317
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Dima T, в шарпах тоже линейный конгруэнтный? Или там другая реализация? Можешь глянуть?

Фиг его знает. Тут исходник , посмотри, может чего поймешь.
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39926323
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
...Станет ли от этого первый получившися байт хуже "вероятным"?..
Нет не станет. По Колмогорову: для случайной послед-сти любая подпослед-сть случайна.
Но автор хочет фсю её.
Немного наврал в формулировке, попозже уточню ...
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39926349
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
mayton
Dima T, в шарпах тоже линейный конгруэнтный? Или там другая реализация? Можешь глянуть?

Фиг его знает. Тут исходник , посмотри, может чего поймешь.

Хм... та тут похитрее будет.
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39926354
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98, уточняю: как раз для нашего случая. Это св-во случайной послед-сти называют частотоустойчивостью (у нас - это равновероятность). Я, правда, предполагаю, что наш поток не просто равновероятен, а ещё и псевдослучаен.
Тогда согласо определению каждая "законная" подпо-сть обладает частотоустойчивостью, т.е. равновероятностью.
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39926365
Borodat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И не программа:

SET NOCOUNT ON;
declare @count table(id int identity(1,1),nn int); declare @ir int=1
declare @res table (id int identity(1,1),nn int)

/*Начальное формирование таблиц*/
while @ir<=9
begin
insert @count(nn) values(0)
insert @res(nn) values(0)
set @ir+=+1
end

declare @id int
set @ir=0
while @ir<=1000000
begin
/*равномерное распределение от 1 до 9*/
select @id= ROUND(RAND()*9,0)
select @id=case when @id=0 then 9 else @id end
update @count set nn=nn+1
where id=@id

/*перевод в равномерное от 1 до 6*/

select @id=floor(@id*6/9.)+nn%2 from @count where id=@id
select @id=case when @id=0 then 6
when @id>6 then 1 else @id
end


update @res set nn+=1
where id=@id

select @ir+=1
end


select
t0.id [id_1-9], t0.nn [было 1-9],
t1.id [id_1-6], t1.nn [Перевод 1-6]
from @count t0
join @res t1 on t1.id = t0.id


Результат:

1 110513 1 166402
2 111083 2 166775
3 110935 3 166886
4 111532 4 166790
5 111304 5 166713
6 111452 6 166435
7 110824 7 0
8 111150 8 0
9 111208 9 0
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39926369
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самое простое - это просто отбрасывать все значения которые не входят в выходной диапазон и считывать следующее входное число.
Тогда оставшиеся значения тоже будут равномерно распределены.
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39926373
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky
Самое простое - это просто отбрасывать все значения которые не входят в выходной диапазон и считывать следующее входное число.
Тогда оставшиеся значения тоже будут равномерно распределены.

Это старый боян из собеседований. Типа брошена игральная кость. И надо получить
Случайное число от 1 до 25 за наименьшее число бросков.

Но эта идея с гневом отвергнута где-то в начале бесед.
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39926376
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Но эта идея с гневом отвергнута где-то в начале бесед.

Она с гневом отвергнута в самом стартовом посте
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39926382
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39926385
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

F(n + 1) = 2 + (F(n) - 2 + S(n+1)) / 5

Не читал но осуждаю.
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39926408
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имя пользователя1
господа, "алгоритм Брезенхама" - это про попиксельное рисование?

не понимаю, как он относится к сабжу.

вот у нас равновероятное число из набора (0, 1, 2, 3, 4), или, например, k таких чисел, если вызвали рандомайзер несколько раз
как его равномерно смапить на набор (0, 1, 2) ?
покажите на примере

это алгоритм равноценен предложенному в 22078706
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39926423
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
mayton

Но эта идея с гневом отвергнута где-то в начале бесед.

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

н-р, если нам нужно получить две независимые случайные величины a, b
то "обрезка" будет "искажать" распределение другой величины

например, так очень сильно накололись с довольно известным преобразованием такого типа
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
function NormalDev(const AEngine: IHepRandomEngine):RandFloat;
var v1,v2,r:RandFloat;
begin
  //Преобразование Бокса — Мюллера
  repeat
     v1:= 2.0 * AEngine.flat() - 1.0;
     v2:= 2.0 * AEngine.flat() - 1.0;
     r:=sqr(v1)+sqr(v2);
  until r<=1;
  {$IFDEF OriginalGauss}
  Result:=v1*sqrt(-2*ln(r)/r);
  {$ELSE}
  Result:=(v1+v2)*sqrt(-ln(r)/r);
  {$ENDIF}
end;

оно кстати до сих пор входит в стандартную библиотеку многих языков, но в реальных вычислительных задачах его использовать нельзя
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39926512
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Но это очень плохо масштабируется на больших числах.

может уже писали за 7 страниц, но после этих загадочных намёков есть смысл посмотреть полное условие
там наверняка ещё какие-то детали всплывут...
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39926647
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему вы думаете что полное условие вообще существовало?

Авторы часто задают тему топика еще без осознания всех деталей. Детали уточняются в процессе. И это нормальный процесс.
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39926665
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Но в идеале чистое математическое преобразование нужно :)
Чистое математическое преобразование - бесконечная десятичная дробь в бесконечную шестиричную дробь.
Можно преобразовывать по частям - добавили несколько десятичных цифры, выдали несколько шестиричных, вот только есть такой момент - может оказаться, что добавление очередной десятичной цифры даст перенос в шестиричный разряд, который мы уже выдали раньше...
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39926767
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
У меня щас когнитивный диссонанс случился.
Если не можешь, зачем завёл топик?
А если можешь, нафига завёл топик?


А как ты думал, когда задаешь такие задачки предполагается что можешь сделать какую то экспертизу решения.
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39926888
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а, ну раз конь, то вот вам "писча для коня"
на 36:00 тут занятная тема, может получится куда-то прикрутить
YouTube Video
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39927100
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Нам не нужен весь диапазон. Давайте представим что у нас есть отрезок от 0 до 30. Почему 30? Потому что НОК(6,10) = 30


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


Alibek B.
Любые. На каждой итерации остатки накопляются и добавляются к текущему значению, после чего сбрасываются.
Если считать, что случайные данные распределены равномерно и количество итераций велико, то и итоговые данные будут распределены равномерно.


А нужно, чтобы вероятность была применима к каждому следующему числу на выходе, а не на больших объёмах статистически.


Имя пользователя1
ставилась задача не о равномерном распределении на множестве итераций, а о равновероятности каждого конкретного результата


+

Речь о вероятности, а не о распределении. Статистика на больших выборках просто показывает эту вероятность.

Т.е. это значит, что если на вход придёт 10 одинаковых цифр, значит на выходе должно быть тоже что-то такое. А превращение любого входа в равномерное распределение по рейнджу :)

Короче я не математик и можете закидывать камнями.

Предложенные в топике решения выглядит рабочими, на больших выборках. Но хочется же красиво )
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39927102
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky
Самое простое - это просто отбрасывать все значения которые не входят в выходной диапазон и считывать следующее входное число.
Тогда оставшиеся значения тоже будут равномерно распределены.


Метод Монте-Карло.
Самый простой способ, да.

Но выходит за рамки задачи, которую хочется решить.
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39927103
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудух
может уже писали за 7 страниц, но после этих загадочных намёков есть смысл посмотреть полное условие
там наверняка ещё какие-то детали всплывут...


Там было употреблено слово "допустим" :)

Это же не ТЗ-шка для реализации за срок. А задача для размышления, для генерации интересных идей.
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39927104
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iOracleDev
А как ты думал, когда задаешь такие задачки предполагается что можешь сделать какую то экспертизу решения.


Ржевский (Р) пришел к Пьеру Безухову(Б) на вечеринку. Там кто-то грит:
- Шестьдесят первый!
Взрыв смеха. Другой грит:
- Двенадцатый!
Опять хохот. (Р) спрашивает у (Б): что тут у вас за приколы?
- А это мы анекдоты рассказываем. Все их уже запомнили, чтобы каждый
раз не повторять, пронумеровали их.
...
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39927131
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
mayton
Нам не нужен весь диапазон. Давайте представим что у нас есть отрезок от 0 до 30. Почему 30? Потому что НОК(6,10) = 30


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

Не решена она математически, mayton уже писал об этом
mayton
Не надо тестить. Ты получишь Гауссово распределение если сделаешь таких штук 20 сложений.

На двух - незаметно. Но форма уже меняется.

Представь что мы с тобой играем в кости на сумму.

И я регулярно ставлю на то что сумма равна 6 или 7 и выигрываю.

Ты - можешь ставить на любое число и с большей вероятностью проиграешь.

Равновероятность исчезает. По большому счету не обязательно сумма, любая функция от нескольких случайных.
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39927132
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T

Представь что мы с тобой играем в кости на сумму.

И я регулярно ставлю на то что сумма равна 6 или 7 и выигрываю.

Ты - можешь ставить на любое число и с большей вероятностью проиграешь.

Равновероятность исчезает. По большому счету не обязательно сумма, любая функция от нескольких случайных.
Нет.

Если A - случайная величина точек на 1 кости (от 1 до 6) а B - количество точек на 2 кости то
их произведение даст линейное распределенеи от 1 до 36.

А их сумма - даст "три ступеньки". Ломаную линию разных высот. В количестве 12 полосок. И чем больше костей мы сложим
в сумму - тем ближе и ближе мы будем аппроксимировать следующий график-колокольчик.



В котором заранее мы будем знать моду, медиану, среднее квадратическое и прочее.
...
Рейтинг: 0 / 0
Случайный конь в вакууме
    #39927135
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Dima T

пропущено...

Равновероятность исчезает. По большому счету не обязательно сумма, любая функция от нескольких случайных.

Нет.

Убедил. Только сумма. Но если ты собрался использовать НОК, то надо будет складывать, умножение тут не уместно.
...
Рейтинг: 0 / 0
25 сообщений из 223, страница 7 из 9
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Случайный конь в вакууме
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]