Pages: (2) [1] 2  ( Show unread post )

> Помогите и мне с задачкой
 Set Member is Offline
 Posted: 22-08-2006, 18:05 (post 1, #644183)

Visionary

Group: Members
Posts: 5181
Warn:0%-----
Имеется энное количество фраз и каждая фраза состоит из одного или более слов. Задача: найти наименьшее множество слов, такое, чтобы в каждой фразе содержалось по крайней мере одно слово из этого множества.

Подскажите, куда смотреть? :)
PM
Top Bottom
 sdandrey Member is Offline
 Posted: 22-08-2006, 18:33 (post 2, #644190)

Мозговых Дел Мастер

Group: Members
Posts: 5478
Warn:0%-----
Людоедка Эллочка тебе поможет :D
а если по существу,напиши обычную програмку по поиску минимума,пусть переберает все фразы и суммирует все попадающиеся одинаковые слова,сумма которая будет наименьшей - наименьшее множество слов
PM Email Poster
Top Bottom
 Set Member is Offline
 Posted: 22-08-2006, 18:46 (post 3, #644195)

Visionary

Group: Members
Posts: 5181
Warn:0%-----
Гм... ниасилил... :D
PM
Top Bottom
 sdandrey Member is Offline
 Posted: 22-08-2006, 18:53 (post 4, #644198)

Мозговых Дел Мастер

Group: Members
Posts: 5478
Warn:0%-----
QUOTE (Set @ 22-08-2006, 15:46)
Гм... ниасилил... :D
ну типа так:
считываешь слова всех фраз
n=0
m=0
и т.д
дальше пишешь условие:

если слово = медвед значит n=n+1
если слово равно превед значит m=m+1
и так условия по всем словам ,которые встречаются во фразах
дальше,та переменная,которая будет наименьшей скажет,какое слово встречается реже всех

например, если m окажется наименьшей,значит редчайшее слово-превед
:D
PM Email Poster
Top Bottom
 Set Member is Offline
 Posted: 22-08-2006, 18:57 (post 5, #644204)

Visionary

Group: Members
Posts: 5181
Warn:0%-----
Нужно не редчайшее слово, а наименьшее множество слов, встречающихся во всех фразах. Т.е. какую бы фразы ни взять в ней обязательно есть слово из этого множества.
PM
Top Bottom
 sdandrey Member is Offline
 Posted: 22-08-2006, 19:03 (post 6, #644209)

Мозговых Дел Мастер

Group: Members
Posts: 5478
Warn:0%-----
QUOTE (Set @ 22-08-2006, 15:57)
Нужно не редчайшее слово, а наименьшее множество слов, встречающихся во всех фразах. Т.е. какую бы фразы ни взять в ней обязательно есть слово из этого множества.
тогда в начале пишешь условие: выбираешь слова,встречающиеся во всех фразах,а потом с этой выборкой делаешь то,что я писал в предыдущем посту
PM Email Poster
Top Bottom
 SonyBrother Member is Offline
 Posted: 22-08-2006, 19:11 (post 7, #644213)

Talk too much

Group: Members
Posts: 2023
Warn:0%-----
QUOTE (Set @ 22-08-2006, 15:57)
Нужно не редчайшее слово, а наименьшее множество слов, встречающихся во всех фразах. Т.е. какую бы фразы ни взять в ней обязательно есть слово из этого множества.

Фразы состоят из слов, значит наименьшее множество - множество слов, из которых сосят эти фразы, а вообще бредовая задача. Это твой пересказ условия или она такая и есть? Сказал бы из какой области эта задача, чтобы хоть как-то понять чего хочут

This post has been edited by SonyBrother on 22-08-2006, 19:12
PM Email Poster
Top Bottom
 sdandrey Member is Offline
 Posted: 22-08-2006, 19:12 (post 8, #644215)

Мозговых Дел Мастер

Group: Members
Posts: 5478
Warn:0%-----
QUOTE (SonyBrother @ 22-08-2006, 16:11)
QUOTE (Set @ 22-08-2006, 15:57)
Нужно не редчайшее слово, а наименьшее множество слов, встречающихся во всех фразах. Т.е. какую бы фразы ни взять в ней обязательно есть слово из этого множества.
Фраза состоит слов, значит наименьшее множество - любое множество слов, а вообще бредовая задача. Это твой пересказ условия или она такая и есть? Сказал бы из какой области эта задача, чтобы хоть как-то понять чего хочут
на сколько я понял ,надо найти слово,которое наименьшее количество раз встречается во всех фразах,иначе условие не имеет смысла
PM Email Poster
Top Bottom
 Set Member is Offline
 Posted: 22-08-2006, 19:14 (post 9, #644216)

Visionary

Group: Members
Posts: 5181
Warn:0%-----
превед
превед sdandrey
медвед

превед = 2
sdandrey = 1
медвед = 1

и дальше что?
PM
Top Bottom
 sdandrey Member is Offline
 Posted: 22-08-2006, 19:18 (post 10, #644218)

Мозговых Дел Мастер

Group: Members
Posts: 5478
Warn:0%-----
QUOTE (Set @ 22-08-2006, 16:14)
превед
превед sdandrey
медвед

превед = 2
sdandrey = 1
медвед = 1

и дальше что?
в данном случае задача не имеет решения,т.к нет ни одного слова,встречающегося во всех фразах
PM Email Poster
Top Bottom
 Set Member is Offline
 Posted: 22-08-2006, 19:20 (post 11, #644219)

Visionary

Group: Members
Posts: 5181
Warn:0%-----
QUOTE (SonyBrother @ 22-08-2006, 19:11)
QUOTE (Set @ 22-08-2006, 15:57)
Нужно не редчайшее слово, а наименьшее множество слов, встречающихся во всех фразах. Т.е. какую бы фразы ни взять в ней обязательно есть слово из этого множества.

Фразы состоят из слов, значит наименьшее множество - множество слов, из которых сосят эти фразы
Фразы состоят из нескольких слов, т.ч. могут быть множества разных размеров, нужно минимальное.

превед
превед sdandrey
медвед

1. {превед, sdandrey, медвед}
2. {превед, медвед}

Второе множество и есть минимальное. ;)


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

Added @ 19:20:
Мне не нужно слово, мне нужно множество слов.

Added @ 19:21:
Причём минимальное. :)
PM
Top Bottom
 SonyBrother Member is Offline
 Posted: 22-08-2006, 19:22 (post 12, #644221)

Talk too much

Group: Members
Posts: 2023
Warn:0%-----
Все, понял! Лови решение:

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

This post has been edited by SonyBrother on 22-08-2006, 19:26
PM Email Poster
Top Bottom
 sdandrey Member is Offline
 Posted: 22-08-2006, 19:28 (post 13, #644225)

Мозговых Дел Мастер

Group: Members
Posts: 5478
Warn:0%-----
QUOTE (Set @ 22-08-2006, 15:57)
Нужно не редчайшее слово, а наименьшее множество слов, встречающихся во всех фразах. Т.е. какую бы фразы ни взять в ней обязательно есть слово из этого множества.
кажется я понял о чем ты тут глаголишь :)

вобщем делай так: сначала берёшь и делаешь выборку из слов,которые ,вообще, встречаются во фразах

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

если нет слов,которые встречаются во всех фразах,то начинаешь перебирать все возможные варианты из двух слов,опять же если встречаются две пары,присутствующие во всех фразах,то выбираешь ту пару,которая присутствует минимальное количество раз и твоё множество будет состоять из двух слов

ежели нет пары,встречающейся во всех фразах,то берёшь три слова и т.д,пока не найдёшь минимальное количество слов,которые встречаются во всех фразах и эти сами слова
PM Email Poster
Top Bottom
 SonyBrother Member is Offline
 Posted: 22-08-2006, 19:31 (post 14, #644226)

Talk too much

Group: Members
Posts: 2023
Warn:0%-----
Кстати эта задачка решается элементарно и быстро при помощи генетического алгоритма
PM Email Poster
Top Bottom
 Set Member is Offline
 Posted: 22-08-2006, 19:52 (post 15, #644236)

Visionary

Group: Members
Posts: 5181
Warn:0%-----
Перебор вариантов в связи с огромным объёмом данных не представляется возможным, а генетический алгоритм тоже базируется на своего рода переборе.

У меня есть предчувствие, что подобная задача имеет решение, только вот в какой области?
PM
Top Bottom
Topic Options Pages: (2) [1] 2