Новости:

Прикрепить к сообщению можно только файлы xls, gif, jpg, rar, zip,7z, bas, frm, cls, doc размером до 150 Кб.

Главное меню

Последовательность простых чисел- найти закономерность.

Автор stuard, 24.05.2012, 19:10

« назад - далее »

stuard

Добрый день.
Помогите пожалуйста с составлением простой таблички, которая будет выводить статистическую закономерность случайных чисел.
Сразу скажу, что работать будем со статистикой европейских чемпионатов по футболу.
Имеются таблицы всех результатов всех розыгрышей по футболу. Данные разбиты по колонкам.
Будут анализироваться все матчи всех футбольных чемпионатов в Европе. Это около 50 за сезон.
Каждая команда играла с другой два раза. один раз дома, второй на выезде. В зависимости от чемпионата таких игр будет от 10 до 19. Например в английской премьер лиге каждая команда играла 19 игр дома и 19 на выезде. Существует определенная последовательность забитых голов.
С моей таблички Арсенал (Лондон) в текущем сезоне АПЛ играя дома имел такую последовательность:
Арсенал (Лондон)   : 0      1   3   2   3   3   1   1   1   1   1   7   5   2   3   1   1   0   3
Aston Villa (England) : 3   0   1   2   1   3   0   0   1   0   1   2   0   1   2   1   0   1   1
И т.д. Для каждой команды будет построена такая вот последовательность забитых голов дома. Всего будет для данной лиги 20 последовательностей. Соответственно для для составления последовательности забитых голов на выезде воспользуемся сортировкой по гостевым матчам.
Таких последовательностей также будет 20- для каждой команды- участника АПЛ.
Подобную процедуру нужно проделать с каждой лигой, которая задействована в анализе. В результате должны появиться две таблицы всех последовательностей всех лиг.. Стоит задача  автоматизировать процесс переноса данных с листов  с общими данными по лигам на отдельный лист с требуемой таблицей. Здесь важно понимать две вещи:что нужно каждую последовательность начинать с новой строчки. Каждая цифра- это количество голов  (от 0 до 10, а может и больше), забитое командой по порядку возрастания  дат.
Это в принципе первая часть задачи. Второй этап: нужно построить таблицу значений в которой будут указаны все возможные комбинации чисел от 0- до 4 (5 цифр) по три числа в каждой строчке. Например- 000, 001, 002, 010. 040, и т.д. Это уже комбинаторика. Конечно можно самому просто взять и писать все возможные варианты. Для последовательности из трех чисел где каждая из них равна от 0 до 3 таких комбинаций будет 64 варианта. Но вот для написания всех комбинаций в моем случае- уйдет много времени. Всего будет 125 строк.
Количество размещениями с повторениями вычисляется по формуле: Akn= nk

n: [ n - число элементов множества ]
k: [ k различных мест
В эту таблицу надо внести значения с таблицы №1. Вносить будем по таким правилам: Во всех последовательностях ищем все последовательности такого типа, которые соответствуют ячейке. Например. Повторения: 132- это значит, что команда А в одном розыгрыше национального чемпионата забила дома (или на выезде) в порядке возрастания дат так: сначала забила 1 гол, потом 3, потом 2 гола. Понятно что не каждая последовательность будет встречаться в одной команде. Поэтому должны сканироваться все последовательности всех чемпионатов участвующих в анализе. После анализа всех повторений мы должны иметь определенное количество повторений во всех чемпионатах. Например 132 всего повторялось 100 раз. А повторение 011 повторялось 250 раз. И т.д.
После всех манипуляций в табличке 2 во второй колонке будем иметь количество повторений для каждого размещения.
Есть также и третий этап задачи, но для начала помогите сделать первые два!




IKor

Мы обязательно попробуем Вам помочь. :)

Но всем было бы удобнее, если в Вашем примере, было бы указано какие именно результаты и в каком именно виде должны быть получены. Лично мне это будет проще воспринимать, чем текстовое задание. Попробуйте нарисовать удобный для Вас формат представления результата и руками подставить в него нужные значения (желательно рассмотреть не только простые, но и сложные случаи). Если текстовые комментарии все-же понадобятся, то их можно будет привести прямо рядом с результатом.

stuard

Добрый день.
Вообщем так- таблицы сформировал практически вручную. Всего проанализировал 19 чемпионатов этого сезона. Результаты у меня записанны в ворде. Все в один столбик таким образом:

Португалия выезд
201022101111112
030011310001300
222111420020023
011002422334112
120011001010241
112100101200201
411050211001013
111011120001020
033202012301110
000010301243433
111011131320122
100102040211201
150302013321125
010110101200102
200000111030100
033120110000130


Австрия выезд
02410001111113243000
31412310010010213011
12200101001010100110
00011000010020200102
01010110122011020100
11110060200331120001
14031210352013101001
00011331210201112121
15101213210100012101
Украина выезд
323013000001212
101120101020103
321000422210253
302422021131010
000122000101200
010111212111120
300210002210100
103321125312232
120012000002211
000010011200120
101110110111200
213203325422252
203310210333211
022011120110300
120100213011002
120111110011322
И так далее. Всего 19 чемпионатов.
Каждая строчка - это количество голов, забиваемых командой. Я для образца и для примера взял только три чемпионата. На этом примере хочу показать, где у меня не сходится...
Мне нужно чтобы анализировались все последовательности всех перестановок из перечисленных комбинаций цифр- от 0 до 4. Подробнее в табл. 1. Колонка называется Выезд. Я перечислил все возможные комбинации всего их 125. . Есть такая функция в Ворде- найти и выделить. Я ей пользовался, но она как- то не корректно работает.
Что именно - ниже:
Допустим последовательность 000 (это значит, что команда А на протяжении сезона на выезде не забивала в трех матчах подряд), Когда я пытаюсь вести подсчет этих комбинаций- у меня выпадает определенное количество. В моем упрощенном примере- 19. Раз. Это значит, что всего 19 раз в трех чемпионатах: Португалия, Австрия, Украина встречалась такая последовательность. Рис.1. во  вложении. Эту цифру ввожу в колонку "Общее кол-во последовательностей" в Табл.1. Далее отсеиваю последовательности 000, которые заканчивают ряд. Отсеиваю подсчитыванием таких окончаний.  Это нужно для того, чтобы не брать в расчет окончание чемпионатов. Так как после окончания  никто больше играть не будет- соответственно меня не интересует этот результат. Воспользовался таким специальным знаком: ^p. Это знак показывает, что надо искать значение 000 и конец абзаца в документе. В нашем случае таких окончаний одно.: Рис.2. Ввожу цифру 1 в нашу табличку1  в колонку "Окончание последовательности". Далее в строке найти прописываю такую последовательность: 0001. для меня это значит- сколько раз команда на выезде забивала один гол после того, как на выезде не забила ни разу в трех матчах. Поиск выдал нам 15 результатов. Рис.3. Эту цифру записываю в колонку под названием 1. Подобные манипуляции проделываю с оставшимися цифрами:0,2,3,4. В результате получаем такую табличку 1. Сразу бросается в глаза, что у нас всего последовательностей 000- 19, а вот сумма всех вариантов 0,1,2,3,4- аж!! 25. Не могу понять, где кроется подвох..

Poltava

Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

stuard

Цитата: Poltava от 26.05.2012, 13:10
ну и где вердовский файл?
Я скопировал данные его в сообщение выше.
Сейчас отправлю.

IKor

Цитата: stuard от 26.05.2012, 11:51
На этом примере хочу показать, где у меня не сходится...
<...>
Сразу бросается в глаза, что у нас всего последовательностей 000- 19, а вот сумма всех вариантов 0,1,2,3,4- аж!! 25. Не могу понять, где кроется подвох..
Проблема в том, что последовательность символов "*00000*" Вы заносите в таблицу как одно вхождение маски "000" и одно вхождение маски "0000", а на самом деле это три и два вхождения этих масок соответственно. Посмотрите прилагаемый файл.

Кроме того, обращаю внимание на то, что из рассмотрения выпадают последовательности вида "XYZ5", "XYZ6" и выше (где XYZ - это базовые маски последовательностей) - что также нарушает стройность системы.

Несколько слов по файлу.
Сама структура представленных исходных данных и требуемых результатов не практически не позволяет обойтись без использования вспомогательных ячеек - Формулы получатся чрезвычайно сложными (если получаться вообще) - хотя в принципе можно написать на VBA собственную функцию для этого случая...
Поэтому я предлагаю отдельно анализировать необходимые маски и РУКАМИ копировать результаты в последнюю таблицу - процесс ручного копирования можно заменить "размножением" вспомогательных столбцов для каждой базовой маски (предупреждение: расчет большОго количества формул массива может занимать значительное время).

stuard

#6
Спасибо за ответ. Окончание последовательности вида "XYZ5", "XYZ6" и выше в моем файле я просто создал колонку- другая цифра.  Эту колонку можно прикрутить к вашему файлу?
И тупой вопрос- как вы копировали вордовские строки в ячейки?

IKor

Цитата: stuard от 28.05.2012, 12:21
Окончание последовательности вида "XYZ5", "XYZ6" и выше в моем файле я просто создал колонку- другая цифра.  Эту колонку можно прикрутить к вашему файлу?
Можно - для этого достаточно скопировать и вставить нужное количество столбцов между "XYZ0" и "XYZ4" - правильные номера получатся автоматически.
Цитата: stuard от 28.05.2012, 12:21
И тупой вопрос- как вы копировали вордовские строки в ячейки?
Я копировал данные не из WORD'a, а со HTML-странички, но основной секрет в том, чтобы предварительно указать текстовый формат данных для колонки, куда планируется вставить текст.