Имя: Пароль:
IT
 
Программа для предсказания последовательности чисел
,
0 pochemu
 
26.06.12
16:47
Нужна программа, которая будет находить закономерности в последовательности чисел, чисел всего два - 0 и 1. Многие играли в игру с друзьями "угадай 0 или 1", может кто хочет посоревноваться в составлении такого алгоритма поиска закономерностей? Я лично ни разу не пробовал подобные проги делать, но программа нужна получше и возможно самому придется делать.
43 dimaldinho
 
26.06.12
17:07
(41) выиграл зачет автоматом
44 Xapac_2
 
26.06.12
17:07
(39)и как правильно предсказывала?
45 pochemu
 
26.06.12
17:08
(38) Как посчитал?
46 Xapac_2
 
26.06.12
17:08
(43)зачет автоматом != программа правильно работала
47 Ненавижу 1С
 
гуру
26.06.12
17:10
(45) очень просто, там правило такое "а потом идут одни единицы"
если серьезно, то для любой такой последовательности я могу придумать например многочлены f1(n) и f2(n)
что он будет давать правильные одинаковые результаты на известных членах и разные на следующем
48 pochemu
 
26.06.12
17:11
(42) Есть история спадов\подъемов курса валют, нужно предсказывать что будет следующим шагом.
49 pochemu
 
26.06.12
17:15
(42) Но вообще. Если меряться алгоритмами - то будет просто файл, в нем история катировок акций - надо будет на этой истории и проверять.
50 Xapac_2
 
26.06.12
17:15
(48)если росло вверх, немного, то потом пойдет чуточку вниз. а если где война какая-то, то выключай своего робота. пока не разорился.
51 Партизан
 
26.06.12
17:15
(6)  00000000..0
0101010101..0
52 pochemu
 
26.06.12
17:16
(43) А программы готовые уже известны тебе?
53 Партизан
 
26.06.12
17:17
(23) тоже будет ноль
54 Lama12
 
26.06.12
17:18
(0)Тебе сюда - http://megaputer.ru/.
Программа - PolyAnalyst.
Там используются разные алгоритмы включая и нейронную сеть.
55 pochemu
 
26.06.12
17:20
(54) Сам пользовался?
56 Партизан
 
26.06.12
17:20
(48) по одной только истории курсы валют предсказывать нельзя - надо учитывать дополнительные данные, по истории можно достоверно предсказывать только детерменированные зависимости
57 Lama12
 
26.06.12
17:21
(55) В институте изучали. Делали несколько практик.
58 Партизан
 
26.06.12
17:24
используй разложение последовательности в ряд Фурье
59 Lama12
 
26.06.12
17:24
(55) Кстати, в качестве простого алгоритма можешь использовать механизм 1С - Анализ данных.
60 Lama12
 
26.06.12
17:25
(59) + Там относительной не плохой алгоритм заложен.
61 Партизан
 
26.06.12
17:28
62 Lama12
 
26.06.12
17:28
(0)В (54) инструмент мирового уровня. Вряд ли мы тут накрапаем что-то даже рядом стоящее.
63 ptiz
 
26.06.12
17:30
(59) Интересно, что он напредсказывает, если я буду СлучайноеЧисло() использовать.
64 Партизан
 
26.06.12
17:33
(63) процент попадания при предсказании случайного числа от 0 до 1 при округлении до 0,01 будет 0,00001
65 Партизан
 
26.06.12
17:34
* вероятность попадания
66 Lama12
 
26.06.12
17:38
(63) Предложит функцию генерации псевдослучайных чисел.
67 pochemu
 
26.06.12
17:45
А тиковая история фотировок курсов валют никому не встречалась?
68 andrewks
 
26.06.12
17:47
мат.ожидание не предлагать?
69 pochemu
 
26.06.12
17:49
Халяву
70 pochemu
 
26.06.12
17:50
Можно в самой платформе благодаря встроенному языку обращаться к тиковым курсам, как бы историю в файл вытащить..
71 pochemu
 
26.06.12
17:50
72 Партизан
 
26.06.12
17:52
(71) а че график вразнос пошел?
73 Анцеранана
 
26.06.12
18:02
(6) (51)  00000000..11111111
0101010101..1010101010

ггг
74 NS
 
26.06.12
18:03
Берем, и считаем статистику появления 1 и 0 по подпоследовательности (например по трем предыдущим числам), да и всех делов. Что встречалось чаще, то и предсказываем. Если не стречалось - то даем наугад.
75 Партизан
 
26.06.12
18:04
(73) нет, т.к. нет утверждения, что последовательность случайная, а судя по образцу - детерменированная, поэтому правильный ответ в (51)
76 Партизан
 
26.06.12
18:07
(74) так не учтешь закономерности
77 Classic
 
26.06.12
18:07
(0)
Я так понимаю, что должно угадываться например такое
010010001000010000010000001 ?
Или что?
78 NS
 
26.06.12
22:20
(76) Именно так и учитывают закономерности.
79 Партизан
 
26.06.12
22:33
(78) нет
80 NS
 
26.06.12
22:33
(79) Спорим?
81 NS
 
26.06.12
22:37
Переформулируем задачу.
Некто выдает с некоторой вероятностью 0 либо 1, причем вероятность возможно зависит от прешедствующей выдачи.
Делаем предположение - вероятность зависит от трех предыдущих значений.

Собирая статистику - мы считаем эту вероятность, и выдаем наиболее вероятное значение. Чтоб максимизировать угадывание.
82 NS
 
26.06.12
22:37
А правильней, в угадайку, зная что соперник не придерживается оптимальной стратегии - учитывать еще и наши ответы.
83 Партизан
 
26.06.12
22:49
по твоему методу в (74) по трем предыдущим числам вероятность угадывания последовательности 01010101010.. равна строго нулю
84 rs_trade
 
26.06.12
22:55
последовательность есть готовая?
85 NS
 
26.06.12
22:56
(83) Точно? А ты попробуй. Вообще-то 100%
010101010
подпоследовательности
010 1
101 0
010 1
101 0
010 1
101 0
После 010 в 100% случаев 1
После 101 в 100% случаев 0

продолжаем исходную последовательносьт. последние три цифры - 010, значит следующая 1.
86 NS
 
26.06.12
22:57
(84) Прочитай условие. Нужен алгоритм для игры в угадайку против соперника играющего не оптимальной стратегией - например против человека.
87 Партизан
 
26.06.12
22:59
(85) ты на ходу меняешь условия? в (74) ты написал, что "Что встречалось чаще, то и предсказываем", ну ладно, пусть даже принять наоборот, возьмем 000010000100001 что на выходе у тебя получится тогда?
88 rs_trade
 
26.06.12
23:00
(86) Нужна программа, которая будет находить закономерности в последовательности чисел

для этого думаю сгодится data mining в составе ms sql
89 NS
 
26.06.12
23:01
(87) И? После 010 встречалось чаще 1.
Поэтому её и предсказываем. Или ты из всего поста только три слова прочитал?
90 NS
 
26.06.12
23:03
Сам не можешь посчитать? После трех нулей единица и ноль встречаются одинаково, поэтому рандомим.
После 001 всегда 0 - угадываем в 100%
После 010 //-//
После 100 //-//
91 NS
 
26.06.12
23:04
Вообще - это не моя естественно идея, алгоритм подстройки я читал очень давно, еще в советское время, и не помню где.
И в оригинали - смотрим статистику, и шлепаем с вероятностью равной статистике (либо зависящей от неё) - чтоб соперник под нас не подстроился.
92 rs_trade
 
26.06.12
23:09
93 NS
 
26.06.12
23:18
(92) Это вообще не то.
После первого определения кластеров алгоритм вычисляет, как кластеры представляют группирование точек, а затем пытается повторно определить группирования, чтобы создать кластеры, которые лучше представляют данные. Алгоритм последовательно выполняет этот процесс до тех пор, пока улучшить результаты, определяя кластеры, будет невозможно.

Алгоритм кластеризации (Microsoft) предлагает два метода для вычисления, насколько хорошо точки соответствуют кластерам: Максимизация ожиданий (EM) и K-среднее. Для кластеризации EM алгоритм использует вероятностный метод для определения вероятности, что точки данных существуют в кластере. Для метода K-среднее алгоритм использует меру расстояния для назначения точки данных ближайшему кластеру.

Столбцы с использованием, заданным только для прогнозирования, для создания кластеров не используются. Их распределения в кластерах вычисляются после построения кластеров.

Дополнительные сведения о работе алгоритма кластеризации (Microsoft) см. в разделе Масштабирование кластеризации EM (максимизация ожидания) под большие базы данных.
94 rs_trade
 
26.06.12
23:22
(93) второй значит более подходящий
95 NS
 
26.06.12
23:23
(94) Это не та задача для которой требуется нейронная сеть.
Нейронные сети используются только когда нет прямого решения, мы не понимаем какие закономерности ищем.
А тут - всё понятно.
Вдобавок - для обучения нейронных сетей нужно огромное число тестов.
96 Ненавижу 1С
 
гуру
26.06.12
23:26
(81) нефига себе переформулировал, так это принципиально другая задача
97 NS
 
26.06.12
23:28
(96) Именно та задача.
98 NS
 
26.06.12
23:28
"Многие играли в игру с друзьями "угадай 0 или 1", может кто хочет посоревноваться в составлении такого алгоритма поиска закономерностей?"
99 Ненавижу 1С
 
гуру
26.06.12
23:31
(97)(98) все равно не согласен
если вероятность была какой-то в выборке, то нет уверенности, что сохранится, помнится было:
если вы монетку кинули 10 раз и она упала решкой все время, то если она правильная, вреоятность 11-го попадания орлом все равно 1/2
100 Ненавижу 1С
 
гуру
26.06.12
23:32
100
101 Партизан
 
26.06.12
23:40
случайные данные ? закономерности
102 Партизан
 
26.06.12
23:40
случайные данные <> закономерности
103 NS
 
27.06.12
00:31
(99) При чем тут это? Если закономерностей нет, то нужно играть по оптимальной стратегии - с вероятностью 50% говорить что 1, и с такой-же вероятностью что 0.
Предложенный алгоритм демонстрирует победу над человеком (а человек не способен играть без закономерностей) на большой выборке.
104 NS
 
27.06.12
00:34
(99) Давай с уровня 0 - то есть смотрим просто частоту единиц и нуля. Человек не способен равномерно их называть, и у каждого будет перекос в ту или иную сторону. Соотвественно программа, которая просто будет собирать статистику по нулям и единицам, и перекашивать свою вероятность в нужную сторону - будет у человека выигрывать. Далее развитие - смотрим частоту заявки "0" после единицы, заявки "1" после единицы, 0 после 0, 1 после 0.
Заметив перекос - так-же подстраиваем. Такая программа будет играть "тоньше". Следующее развитие - смотрим пару предыдущих заявок - нашу и соперника ит.д.
105 Ненавижу 1С
 
гуру
27.06.12
00:36
кто сказал, что последовательность дает человек?
106 NS
 
27.06.12
01:36
(105) Ты не знаешь игру (0) (98) ?
Если играет программа - то просто оптимальная смешанная стратегия.
107 Ненавижу 1С
 
гуру
27.06.12
01:42
(106) все это понятно, но требует накопления статистики, просто так как в (0) и проч - случайный автомат ничем не лучше
108 NS
 
27.06.12
01:49
(107) Ничего не понял.
109 Ненавижу 1С
 
гуру
27.06.12
01:50
(108) я к тому что в общей модели предыдущие данные - ничто, никакой информации
110 NS
 
27.06.12
01:51
(109) в общей модели наилучшая стратегия - оптимальная.
Но речь идет о поиске закономерностей, то есть о игре с соперником играющем не по оптимальной стратегии.
111 SeraFim
 
27.06.12
03:00
года 3 назад обучал нейронную сеть на курс доллара) проверил предсказание на следующие 2 недели - значения не угадало, а вот поведение (завтро он вырастет, послезавтра - тоже, а потом - уменьшится) угадать получилось)
112 Keyn
 
27.06.12
05:15
я фигею над топикстартером

Запомните раз и на всегда, будущее предвидеть невозможно! Если бы это было возможно я бы уже давно написал программу и выиграл в лотерею. Я бы разорил все казино мира и стал бы самым богатым.

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

совсем другое дело если ряд известен и описывается какой либо функцией, тогда да, тогда конечно можно
113 Keyn
 
27.06.12
05:21
представьте что вы предвидели будущее. например что вам сегодня хулиган заедет кулаком в лобешник. вы это предвидели и решили сегодня из дома не выходить. вы из дома не вышли, хулиган вам в лобешник не заехал. будущее которое вы предвидели не произошло. значит ли это что вы предвидели будущее? ))

тока на этот риторический вопрос отвечать мне не надо. это все равно что спорить пролезет ли черт в угольное ушко.
114 pochemu
 
27.06.12
10:09
(112) Фигеть незачем, уже многократно сказано, что нужны предсказания 0 и 1 с как можно большей частотой угадываний, а не 100%. Не правильно поняли, естественно невозможно создать программу, которая 100% будет предсказывать. Возможно ваше желание делать из других людей дураков достаточно велико, чтобы выбирать самый глупый вариант трактовки вопроса для последующего унижения автора вопроса.
115 pochemu
 
27.06.12
10:11
(111) Это уже отлично, уже можно бездельничать. Бездельничаешь?
116 NS
 
27.06.12
13:05
(112) Задача в (0) Не просто решаема, а легко решаема. Именно в эту игру уже лет 30 как есть программы выигрывающие у человека.
117 Ненавижу 1С
 
гуру
27.06.12
13:10
(116) если там тупо генерится рандомом - никакой твой алгоритм не сможет выиграть в пределе (впрочем и проиграть) - будет стабильная ничья
118 NS
 
27.06.12
13:37
(117) Ты мои посты не читаешь?
Я тебе сколько раз написал об оптимальной стратегии?

перем стат;
перем а[9];
Процедура Сформировать()
   прог=0;
   чел=0;
   Для ы=1 по 8 Цикл
       а[ы]=0;
   КонецЦикла;
   стат=1;    
   текстсообщ="";
   Для партий=1 по 30 Цикл
       Если а[стат+1]<-1 Тогда
            Нашазаявка=0;
       Иначеесли а[стат+1]>1 тогда
            НашаЗаявка=1;
       Иначе
            Нашазаявка=цел(_GetPerformanceCounter()/7)%2;
       КонецЕсли;                                      
       //Да=0, нет=1;
       отв=0;
       Пока (отв<>6)и(отв<>7) Цикл
           отв=Вопрос(текстсообщ+"Нажмите на кнопку, да=0, нет=1",4);
           Если отв=6 Тогда
               Заявка=0;
           иначеЕсли отв=7 Тогда
               Заявка=1;
           КонецЕсли;      
       КонецЦикла;      
       Если нашазаявка=заявка Тогда
           прог=прог+1;
       иначе
           чел=чел+1;
       КонецЕсли;    
       Если партий>3 Тогда
           а[стат+1]=а[стат+1]+заявка*2-1;  
       КонецЕсли;
       стат=(стат%4)*2+заявка;  
       текстсообщ="Предыдущая ваша заявка: "+Заявка+разделительстрок+"Заявка программы: "+НашаЗаявка+разделительстрок+
       "Счет: прог: "+прог+" чел:"+чел+разделительстрок;
   КонецЦикла;        
   Сообщить(текстсообщ);
КонецПроцедуры

вот, попробуй сыграть.
119 Keyn
 
28.06.12
10:51
(114) "что нужны предсказания 0 и 1 с как можно большей частотой угадываний"

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

так что да вопрос можно назвать глупым
120 pochemu
 
28.06.12
10:55
(119) Числа не случайны.
121 Keyn
 
28.06.12
10:59
хорошо откуда они берутся
122 Keyn
 
28.06.12
11:02
вот хороший пример. в казино можно ставить на красное или черное, и тогда игрок может все время увеличивать ставку, и когда он выиграет срубить банк и не играть. вот против такой стратегии еще есть зеро. а вот если бы мы могли с каконит вероятностью спрогнозировать что будет, мы бы разорили это казино.
123 Keyn
 
28.06.12
11:17
хаха из головы игрока, случайна ли голова игрока
124 БалбесВ1с
 
28.06.12
11:22
(122)Давай выкладывай файл текстовый с нолями и единицами.Штук 100 цифр.
Проанализируем и попробуем угадать следующий твой файл.
125 NS
 
28.06.12
11:25
(123) ничего смешного. Человек не умеет выдавать случайные последовательности.
126 SUA
 
28.06.12
13:14
(125) Умеет. Но случайные для другого человека.
127 NS
 
28.06.12
13:21
(126) ИМХО - только профессиональные игроки в покер.
128 SUA
 
28.06.12
13:27
(127)кто угодно, достаточно подходить с таким вопросом неожиданно, чтобы кэш предыдущих ответов не выскакивал
129 NS
 
28.06.12
13:29
(128) Попробуй (118), сколько первых матчей ты проиграешь, пока к программе не приноровишься.
130 NS
 
28.06.12
13:30
(128) В варианты бумага-ножницы-камень проводятся соревнования, и есть профи - которые сразу раскусывают закономерности в заявках другого человека.
131 NS
 
28.06.12
13:40
Как это люди умеют, если при игре двух профи в покер - оба играют почти по оптимальной стратегии, и тот который сильнее кроме того что делает меньше заявок не входящих в оптимальную стратегию, еще и находит закономерности отклонения от оптимальной стратегии своего соперника.

А на больших столах - вообще без определения стратегий соваться нечего.
Ибо оптимальной стратегии не существует, а есть равновесие по Нешу.

И всё это опровергает (126)
132 qeos
 
28.06.12
13:54
volfram кажется может находить последовательности
133 SUA
 
28.06.12
14:53
(129) как бы не про последовательности генерируемые человеком
(131) Есть более простые модели, притом с полной информацией, чем покер где надо еще знать оптимальную стратегию. Как вариант старая браузерка "БК" - с 50% угадыванием действий противника (заблокируешь его удар или нет). В качестве цели атаки всегда ставил "куда мыша сама приехала / взгляд вперед упал (чем не генерация рэндома?)", и статистика выигрыша была более 50% за счет определения стратегии соперника (блока). Что означает - не все могут определить "достаточно случайную" для соперника последовательность, но это не особо сложная задача.
134 NS
 
28.06.12
15:02
(133) А ты не человек? Если ты играешь с программой - то ты генерируешь последовательность.

Вторую часть вообще не понял. Как ты случайным выбором (оптимальной стратегией) смог выигрывать больше 50% по статистике? Неужели опроверг основы теории матричных игр?
135 oleg_prg
 
28.06.12
15:06
Смотри уравнения экстраполяции.
wiki:Экстраполяция
136 oleg_prg
 
28.06.12
15:10
Экстраполяция  - это математическое предсказание некого графика функции, есть еще интерполяция, это когда есть график с обрывом внутри, так вот интерполяция может дочертить график. Кстати говоря в учебные годы нам говорили что экстраполяция используется синоптиками и военными при сбивании воздушных целей неуправляемыми снарядами. В этом случае идет выстрел на опережение в максимально вероятную точку.
137 NS
 
28.06.12
15:11
(136) Ты видимо до конца (0) не прочитал.
Тут дикретная последовательность нулей и единиц, а не гладкая функция.
138 acsent
 
28.06.12
15:21
(134) он просто везунчик
139 Keyn
 
29.06.12
02:44
вопрос случайные ли числа выдает человек, останется риторическим.

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

а вообще можно числа генерить не просто от балды а мозги включить
140 NS
 
29.06.12
02:45
(139) Не останется, иначе бы соревнования в игры типы "камень ножницы бумага" давно бы вымерли.
Чем больше человек включает мозги, тем более закономерной становится выдаваемая им последовательность.
141 NS
 
29.06.12
02:47
(139) Давным давно доказано что человек выдает закономерные последовательности. Хотя бы программами типа (118)
142 Keyn
 
29.06.12
03:32
да я хз че у тя где там доказано. предположим ты кидаешь монету, вроде бы она генерит случайные числа. затем на большой выборке ты обнаруживаешь что чаще выпадает орел. затем ты  хитроумными аппаратами обнаруживаешь что монета не ровная, затем ты проверяешь что монета на большой выборке выдает орлов больше. Значит ли это что монета выдает не случайные числа?

Если мозг человека не много "не ровный" и выдает на большой выборке 1 больше чем 0 значит ли это что его числа не случайны? ))