Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2011.06.12;
Скачать: [xml.tar.bz2];

Вниз

Помогите реализовать алгоритм по поиску возможных значений   Найти похожие ветки 

 
Wadimka   (2009-10-27 08:53) [0]

Например, есть массив чисел от 1 до 20.
Скажем, в это массиве заданы 5 чисел, ну например
элементы этого массива под номерами 5,6,7,10,11 заполненные 1, остальные имеют, скажем 0.
Нужно найти недостающие номера (в близи этих позиций)
т.е. найти все возможные варианты позиций, которые могли бы создать поседовательность, но обязательно включая часть этих чисел.
т.е. сейчас возможные варианты такие:
4,5,6,7,8 - найдены числа 4 и 8
5,6,7,8,9 - найдены числа 8 и 9
3,4,5,6,7 - найдены числа 3 и 4
9,10,11,12 - найдены числа 9 и 12
Это я для примера привел, массив может быть и больше, длинна найденной последовательности тоже может меняться, но в переделах одного прохода, так сказать, она фиксированная, т.е. напрмиер нужна последовательность только из 5-ти чисел, или только из 7-ми числе.
Единственное ограничение, максимум нужно добавить недостающих чисел, всего 2 к уже существующим, но не более.
Я уже всю ночь сижу, бьюсь над этим решением, никак не получается, даже в голову никакого решения не приходит и близко. Найти, допустим в массиве случайных заполненных чисел, возможна ли вообще какае-то последовательность, при добавлении 2-х чисел, легко... причем эту последовательность нужно искать лишь в случае ее отсутствия в указанном массиве.
Если она уже есть, то делать уже ни чего не нужно (ну это я тоже реализовал, это не сложно)

прошу помощи!


 
Wadimka   (2009-10-27 09:09) [1]

О и еще забыл добавить, в этом примере везде искомые были 2 числа, но может быть и 1 число, если последовательность стала равна 5-ти, допустим
2,4,5,6,7

2,3,4,5,6 -  искомое число 3
1,2,3,4,5 - найдены 1 и 3
ну и т.д и т.п.


 
MBo ©   (2009-10-27 09:24) [2]

Трудно понять, что же все-таки требуется...
стрит в покере, что ли, ищешь?


 
Sha ©   (2009-10-27 09:24) [3]

В цикле перебрать всех соседей множества имеющихся чисел,
и если они (перебираемые соседи) не входят в это множество,
уже для них подсчитать число соседей,
равных имеющимся числам.

Потом взять одно-два числа с максимальным значением счетчика.


 
Wadimka   (2009-10-27 10:20) [4]


> Трудно понять, что же все-таки требуется...
> стрит в покере, что ли, ищешь?

Да, кстати по сути дела очень похоже, только необходимо для другого


 
Wadimka   (2009-10-27 10:21) [5]


> В цикле перебрать всех соседей множества имеющихся чисел,
>
> и если они (перебираемые соседи) не входят в это множество,
>
> уже для них подсчитать число соседей,
> равных имеющимся числам.
>
> Потом взять одно-два числа с максимальным значением счетчика.
>
>


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



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2011.06.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.003 c
2-1299245500
rodionov_uv
2011-03-04 16:31
2011.06.12
Имя активного окна


2-1299173751
Leon-Z
2011-03-03 20:35
2011.06.12
Поиск 2 одинаковых элементов в массиве.


2-1299053417
Гость
2011-03-02 11:10
2011.06.12
Как раскрасить title в DBGrid под Windows 7?


1-1257268099
harisma
2009-11-03 20:08
2011.06.12
TCursorProperty в Delphi 7


15-1298496594
Юрий
2011-02-24 00:29
2011.06.12
С днем рождения ! 24 февраля 2011 четверг





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский