@haskellru

Страница 1453 из 1551
Oleg
10.09.2018
21:54:37
P(max(a, b) < x) = P( a < x && b < x) = P(a < x) * P(b < x) = x^2

Андрей
10.09.2018
21:54:47
у нас 3 варианта - 2 слева, 2 справа и по одному там и там. по Гауссу хотел бы рассчитать вероятности этих событий и кинуть монетку

Oleg
10.09.2018
21:55:26
Отмасштабировав правильно такое распределение на целые числа легко выбрать сначала максимум, а потом второе число от нуля до первого

Теперь представим, что k - нечётное?

Google
Андрей
10.09.2018
21:55:54
а какая разница?

Oleg
10.09.2018
21:56:01
Тогда мат-ожидание середины равномерно

Андрей
10.09.2018
21:56:38
не вижу чем это поможет. нам не матожидание нужно а генерировать испытания каждый раз с неравномерным исходом

Oleg
10.09.2018
21:56:38
Выбираем середину, потом выбираем рекурсивно k/2 чисел справа, k/ 2 слева

Андрей
10.09.2018
21:56:50
и получаем равномерную сетку - ок )

ее я могу и проще через шаг получить )

Андрей
10.09.2018
21:57:24
нечетность к чем так выделяется?

Андрей
10.09.2018
21:57:41
кинуть монетку и выбрать - что выпадет

Oleg
10.09.2018
21:58:01
кинуть монетку и выбрать - что выпадет
Тогда придётся запоминать все предыдущие

И делать специальный мэппинг с пропусками

Если k - очень большое

Google
Alexander
10.09.2018
21:58:35
ещё есть странный вариант, просто вызывать random shuffle на вершинах

Oleg
10.09.2018
21:59:00
К с правильным алгоритмом можно помнить только логарифм и никаких пропусков учитывать не нужно

Андрей
10.09.2018
21:59:14
при любом к не придется ничего запоминать - алгоритм волшебен, только Гаусса прикрутить

шаффл интересная идея...

Alexander
10.09.2018
22:00:23
не знаю, думаю пока что

Pineapple
10.09.2018
22:01:14
Придумал отличный рекурсивный алгоритм. Нам надо придумать набор N рёбер из K возможных. Они у нас как-то занумерованы и задача сводится к генерации битвектора дл ины K с N единицами У нас равнораспределение, потому первый элемент 1 с вероятностью K/N. 1. Выбираем его случайно 2. Если он 1 задача сводится к (K-1,N-1), иначе (K,N-1)

Нужно сгенерировать N случайных чисел, где N —число рёбер

Андрей
10.09.2018
22:02:00
щас скопипасчу пока не уехало и почитаю вдумчиво…

Pineapple
10.09.2018
22:02:04
А алгоритм @IIvana я так и не понял

Oleg
10.09.2018
22:02:07
Как выбрать миллион гарантированно разных целых чисел в диапазоне от 0 до C(5000,2500), не запоминая ничего на каждом шаге

Alexander
10.09.2018
22:02:09
ну с этого начинается все

Pineapple
10.09.2018
22:02:09
:(

Евгений
10.09.2018
22:02:21
Увидел "если будет много офытопа -- отправлю в блах" и 150 непрочитанных сообщений

Alexander
10.09.2018
22:02:28
ну или запоминая минимум

тут почти спец олимпиадка!

я так понял идея такая - разбиваем отрезок на 2, выбираем сколько элементов попало в первую половину

рекурсивно продолжаем

тогда нам нужно помнить log(N*M/2) чисел (сколько точек в соотв отрезке)

Oleg
10.09.2018
22:04:42
А. Я неправильно понял алгоритм

Google
Alexander
10.09.2018
22:04:42
ну или побить на большее число отрезков, тогда вообще помнить 1 число придётся

Oleg
10.09.2018
22:04:49
Тогда да - ок

Alexander
10.09.2018
22:05:02
я так понял решение @IIvana

т.е. вопрос в том как эффективно выбирать это самое число только

Pineapple
10.09.2018
22:05:31
я так понял идея такая - разбиваем отрезок на 2, выбираем сколько элементов попало в первую половину
Так понял, но это как-то неэкономично. И считать надо всякие сложные вещи. В моем алгоритме надо понить два числа

Alexander
10.09.2018
22:05:51
и держать битвектор

я вроде это сначала предлагал

правда по глупости предложил перебросить кубик если попали на выбранное

но это не обязательно

Pineapple
10.09.2018
22:06:41
Битвектор материализовывать необязательно.

Alexander
10.09.2018
22:07:04
ну список выбранных ответов помнить надо?

Андрей
10.09.2018
22:07:37
у меня ничего помнить не надо! у меня патологическая рекурсивная сортировка сама все помнит на стеке

Alexander
10.09.2018
22:07:51
стек == помнить

Pineapple
10.09.2018
22:07:59
Можно сразу употреблять. Но есть граф сильно разряженный, то алгоритм будет неэкномичный. Он O(число возможных ребёр)

Alexander
10.09.2018
22:08:02
я правильно понял твое решение, кстати?

Google
Андрей
10.09.2018
22:08:23
посчитай глубину стека для числа ребер 1000000 - мизер ) да, решение понял правильно

вся соль - разбить число не пополам а отрезок пополам

Alexander
10.09.2018
22:08:41
а понял

все мой комментарий снят

Pineapple
10.09.2018
22:09:01
ну список выбранных ответов помнить надо?
Есть есть хорошее упорядочивание, то необязательно

Alexander
10.09.2018
22:09:01
проходим по всем и выбираем его с вероятностью k/n

Pineapple
10.09.2018
22:09:13
k/n меняется с каждым шагом

Alexander
10.09.2018
22:09:14
потом меняем вероятность в зависимости от результата

угу

Oleg
10.09.2018
22:09:29
а как тогда?
Биномиальным распределением понимаешь, сколько элементов должно идти в левый подотрезок Спускаешься рекурсивно то в него, потом во второй с оставшимися. Пока размер отрезка не станет сравнис с количеством точек в нём и можно будет опять запустить выбор C

Андрей
10.09.2018
22:09:31
а вот это я уже не понимаю (

Андрей
10.09.2018
22:10:03
не прямо выше а до этого -0 алгоритм Александра и Алексея

Alexander
10.09.2018
22:10:45
просто Алексея, я не решился предлагать этот алгоритм, хотя и думал о нём

смотри

берёшь первый элемент

какая вероятность того, что он в списке?

Андрей
10.09.2018
22:11:06
0

Alexander
10.09.2018
22:11:06
это конкретное ребро

Андрей
10.09.2018
22:11:16
в списке выбранных?

Google
Alexander
10.09.2018
22:11:44
какая вероятность, что ребро (1,2) у тебя выбрано если всего у тебя N вершин, и из них выбрано K?

Андрей
10.09.2018
22:12:00
к/n

Alexander
10.09.2018
22:12:03
вот

бросаешь кубик, и узнаешь входит ли оно

Андрей
10.09.2018
22:12:17
или нет? )

Alexander
10.09.2018
22:12:22
верно

Pineapple
10.09.2018
22:12:25
Спокой ночи

Alexander
10.09.2018
22:12:30
после этого у тебя 2 варианта

Oleg
10.09.2018
22:12:37
бросаешь кубик, и узнаешь входит ли оно
Тогда нужно запоминать выбранные графы

Alexander
10.09.2018
22:12:43
неа

Андрей
10.09.2018
22:12:51
Алексей - пасиб за биномиальное и Гаусса

Alexander
10.09.2018
22:13:22
у тебя 2 варианта: 1. выбрали, тогда решаешь задачу с (n-1) ребром и нужно выбрать (k-1) 2. не выбрали тогда n'=n-1, k'=k

и идешь по списку дальше

Oleg
10.09.2018
22:13:34
после этого у тебя 2 варианта
Тогда вероятность выбора ребра может отличаться от k/n

Alexander
10.09.2018
22:13:48
да, она изменяется после каждого выбора

Андрей
10.09.2018
22:13:57
но тогда я могу набросать кубик так, что к концу не наберу мое К

Oleg
10.09.2018
22:14:04
Alexander
10.09.2018
22:14:04
не можешь

Андрей
10.09.2018
22:14:07
или я туплю

Oleg
10.09.2018
22:14:20
Я сделал 1000 графов

Alexander
10.09.2018
22:14:33
если я правильно понимаю то или (k-1)/(n-1). или k/(n-1)

Oleg
10.09.2018
22:14:45
Как мне посчитать вероятность выбора первого ребра для 1001 графа?

Страница 1453 из 1551