Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Ещё один случайный конь / 25 сообщений из 61, страница 1 из 3
16.02.2020, 22:14
    #39927231
Имя пользователя1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
Поскольку тервер здесь хорошо заходит, то почему бы и нет? )

Есть рандомайзер, который может возвращать только 0 или 1, причем вероятность 1 равна P1 (вещественное от 0 до 1), ну а вероятность 0 равна соответственно 1-P1.

С его помощью, не пользуясь никакими другими генераторами случайных чисел, написать функцию, которая возвращает равновероятно одно из пяти чисел: 0, 1, 2, 3, 4.

Вышеупомянутое P1 задается на старте, после чего меняться не может, а генератор не работает, пока его не указать. Это число надо придумать самому.


иными словами, в кодинге примерно так
Код: javascript
1.
2.
3.
4.
5.
function getRandom01234(randomizer) {
    randomizer.init(P1); // задаем P1
    ...
    // можно использовать randomizer.getRandom();
}



использовать randomizer.getRandom() во время работы функции можно не более N раз, и надо придумать алгоритм с как можно меньшим N.

функция должна уметь правильно отработать даже одноразово, то есть не сохраняя какое-либо состояние между вызовами.
...
Рейтинг: 0 / 0
17.02.2020, 09:23
    #39927282
АСУ ТПшник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
Умножаем 1 2 3 4 5 на рандомайзер. Как то так.
Нули убираем по условию if ==0 бла бла бла.
Он же рандомайзер единицу выдает?
Ну вот и получается что может циферка появится случайно а может будет уничтожена нулем.
...
Рейтинг: 0 / 0
17.02.2020, 09:29
    #39927286
АСУ ТПшник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
Не не сработает. Но подход именно в умножении. Толи нуль толи не нуль.

Почему у меня опять мозг закипел? Сдается что опять задача с подковыркой додумай сам.
...
Рейтинг: 0 / 0
17.02.2020, 09:38
    #39927287
АСУ ТПшник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
Я специально проигнорировал 0 1 2 3 4. Можно от результата просто единичку отнять.
Вот этот нуль в множестве все портит и сбивает с единственно правильного пути юного падавана :D
...
Рейтинг: 0 / 0
17.02.2020, 10:04
    #39927294
АСУ ТПшник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
Хмм.. Рандомайзер тыкает на одну из пяти величин, потом прогоняем через нуль не нуль путем умножения.
Вот как его заставить при входных 0-1 на пять величин тыкать. У меня чего в голове не сходится- наглядная равномерность решений. Так-то просто умножать в цикле и все более менее случайною.
...
Рейтинг: 0 / 0
17.02.2020, 10:50
    #39927320
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
Имя пользователя1,

задай P = 0.5
тогда будет равновероятно выходить да\нет

Подбираем такое k, что 2^k > N
генерим наши k битов, число из полученных битов находится в диапазоне от 0 до 2^k-1
если получилось число меньше N, то возвращам
если получилось число >=N генерим заново
...
Рейтинг: 0 / 0
17.02.2020, 11:08
    #39927328
Имя пользователя1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
kealon(Ruslan)
Имя пользователя1,

задай P = 0.5
тогда будет равновероятно выходить да\нет

Подбираем такое k, что 2^k > N
генерим наши k битов, число из полученных битов находится в диапазоне от 0 до 2^k-1
если получилось число меньше N, то возвращам
если получилось число >=N генерим заново
это противоречит условию
Имя пользователя1
использовать randomizer.getRandom() во время работы функции можно не более N раз, и надо придумать алгоритм с как можно меньшим N.


Нужен алгоритм, который гарантированно отработает не более чем за N использований. Для справки - можно управиться менее чем за 8
...
Рейтинг: 0 / 0
17.02.2020, 11:13
    #39927332
АСУ ТПшник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
Просто интересно. Судя по всему у вас уже есть решение. Вы его в конце обcуждения озвучите?
...
Рейтинг: 0 / 0
17.02.2020, 11:23
    #39927341
Имя пользователя1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
АСУ ТПшник
Просто интересно. Судя по всему у вас уже есть решение. Вы его в конце обcуждения озвучите?
решение есть, но, надеюсь, в этом топика народ сможет решить.
Если кому интересно узнать ответ, а искать его самостоятельно уже задолбало, то могу выслать под подписку о неразглашении ))
...
Рейтинг: 0 / 0
17.02.2020, 11:28
    #39927345
АСУ ТПшник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
Не не. Я просто с языковым барьером столкнулся. Мои изложения полной ерундой выходят? Задача в другом?
...
Рейтинг: 0 / 0
17.02.2020, 11:49
    #39927360
Имя пользователя1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
АСУ ТПшник
Не не. Я просто с языковым барьером столкнулся. Мои изложения полной ерундой выходят? Задача в другом?
задача именно в том, что написано в стартовом посте) никаких подвохов нет, всё сказано. Если что-то конкретно неясно, спрашивайте
...
Рейтинг: 0 / 0
17.02.2020, 12:15
    #39927376
АСУ ТПшник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
Ну смотрите.
авторЕсть рандомайзер, который может возвращать только 0 или 1, причем вероятность 1 равна P1 (вещественное от 0 до 1), ну а вероятность 0 равна соответственно 1-P1.

С его помощью, не пользуясь никакими другими генераторами случайных чисел, написать функцию, которая возвращает равновероятно одно из пяти чисел: 0, 1, 2, 3, 4.
Как мне кажется, равновероятно надо 0 или 1. Что тут писали уже 0,5 или ухищрения на эту тему.
Далее в цикле просто умножаем. Ноль или значение умножаемой цифры на выходе. Но раз в цикле то последовательность , скажем 32145. Уже псевдорандомайзер выходит. Надо раскидать циферки (их последовательность). Вот тут у меня затык. Как рандомайзером 0-1 это сделать.
...
Рейтинг: 0 / 0
17.02.2020, 12:16
    #39927379
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
Имя пользователя1
Нужен алгоритм, который гарантированно отработает не более чем за N использований. Для справки - можно управиться менее чем за 8
фактически, при таких условиях не копить, не отсекать выходит нельзя
...
Рейтинг: 0 / 0
17.02.2020, 12:25
    #39927389
Имя пользователя1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
kealon(Ruslan)
Имя пользователя1
Нужен алгоритм, который гарантированно отработает не более чем за N использований. Для справки - можно управиться менее чем за 8
фактически, при таких условиях не копить, не отсекать выходит нельзя
да.
...
Рейтинг: 0 / 0
17.02.2020, 12:30
    #39927393
Имя пользователя1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
АСУ ТПшник
Ну смотрите.
авторЕсть рандомайзер, который может возвращать только 0 или 1, причем вероятность 1 равна P1 (вещественное от 0 до 1), ну а вероятность 0 равна соответственно 1-P1.

С его помощью, не пользуясь никакими другими генераторами случайных чисел, написать функцию, которая возвращает равновероятно одно из пяти чисел: 0, 1, 2, 3, 4.

Как мне кажется, равновероятно надо 0 или 1. Что тут писали уже 0,5 или ухищрения на эту тему.
Далее в цикле просто умножаем. Ноль или значение умножаемой цифры на выходе. Но раз в цикле то последовательность , скажем 32145. Уже псевдорандомайзер выходит. Надо раскидать циферки (их последовательность). Вот тут у меня затык. Как рандомайзером 0-1 это сделать.вероятность 1/2, разумеется, не подойдет.
но ведь мы можем поюзать генератор несколько раз. Очевидно, это будет больше одного раза, и даже больше двух.
...
Рейтинг: 0 / 0
17.02.2020, 12:34
    #39927395
АСУ ТПшник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
Запрос на подсказку - а ограничение в 0-5 принципиально? Думал тоже про двоичную систему, но ведь не там собака порылась?
...
Рейтинг: 0 / 0
17.02.2020, 12:54
    #39927410
АСУ ТПшник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
РндомайзерРезалт = вес циферки. Потом по весу выстраиваем и умножаем на 0 или 1. Както так. Вот не пойму чего - рандомайзер чего может выдавать ? Только 0 или 1? Не точность какая-то. Я бы сказал сознательное затуманивание исходной задачи. При чем тут подбор цифери P1? Ну дико искуственные условия же.
...
Рейтинг: 0 / 0
17.02.2020, 13:06
    #39927423
АСУ ТПшник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
Выставляем P1 равное единице и решаем совсем другую задачу. Но вот про вероятность непонятно все равно. Как может вероятность на 0-1 для отрезка 0-5 работать.
Точно искусственная задача. Со многими недосказанностями.
...
Рейтинг: 0 / 0
17.02.2020, 13:07
    #39927426
Имя пользователя1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
АСУ ТПшник
Както так. Вот не пойму чего - рандомайзер чего может выдавать ? Только 0 или 1? Не точность какая-то. Я бы сказал сознательное затуманивание исходной задачи. При чем тут подбор цифери P1?
рандомайзер может только 0 и 1

он работает как "монета со смещенным центром тяжести" - можно задать вероятность выпадения орла, отличную от 1/2. Выбор этой вероятности - тоже часть алгоритма, можно выбрать удобную для себя.
...
Рейтинг: 0 / 0
17.02.2020, 13:34
    #39927454
Имя пользователя1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
АСУ ТПшник
Как может вероятность на 0-1 для отрезка 0-5 работать.
ну, например, с помощью двух бросков обычной монеты (с вероятностью орла 1/2) можно выбрать один вариант из 4

а тут надо один из пяти
...
Рейтинг: 0 / 0
17.02.2020, 14:14
    #39927480
Механик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
Имя пользователя1,

Я так понял, при равномерности умножением мы получаем 0 в половине случаев. Не проще ли набирать искомое число двоично как прятизначное?
...
Рейтинг: 0 / 0
17.02.2020, 15:00
    #39927517
Имя пользователя1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
Механик
Не проще ли набирать искомое число двоично как прятизначное?
не понял идею
...
Рейтинг: 0 / 0
17.02.2020, 16:42
    #39927562
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
Механик
Имя пользователя1,

Я так понял, при равномерности умножением мы получаем 0 в половине случаев. Не проще ли набирать искомое число двоично как прятизначное?

2^4 = 3*5 + 1
всегда будет остаток, а значит конечность нельзя гарантировать
...
Рейтинг: 0 / 0
17.02.2020, 16:57
    #39927572
SpringMan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
Кидаем наш рандом N раз (четное). Если количество "единичек" меньше чем p1*N, то считаем что нам вернулось 0, иначе 1 (вероятность должны быть 0.5 у каждого)
Повторяем 3 раза, в итоге у нас 3 числа 0 или 1. Эти 3 числа переводим из двоичной системы в 10ую.
Ну и как выбрать нашу N, пусть N = 10 ^ (min(1, abs(px/(1-px)))), где x = min(p1, 1-p1)
Топорно, но должно быть равномерно.
Вообще N можно по Стьюденту наверное выбрать для красоты
...
Рейтинг: 0 / 0
17.02.2020, 17:01
    #39927574
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ещё один случайный конь
Имя пользователя1
Поскольку тервер здесь хорошо заходит, то почему бы и нет? )

Есть рандомайзер, который может возвращать только 0 или 1, причем вероятность 1 равна P1 (вещественное от 0 до 1), ну а вероятность 0 равна соответственно 1-P1.

С его помощью, не пользуясь никакими другими генераторами случайных чисел, написать функцию, которая возвращает равновероятно одно из пяти чисел: 0, 1, 2, 3, 4.

Вышеупомянутое P1 задается на старте, после чего меняться не может, а генератор не работает, пока его не указать. Это число надо придумать самому.


Есть совсем тупой способ
1. Складываем n random-чисел.
2. Исходя из ЦПТ считаем что получили Гаусс, берем и обратную функцию распределения.
3. Получаем равномерное распределение и квантуем на 5 значений.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Ещё один случайный конь / 25 сообщений из 61, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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