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

Вниз

Задачка.   Найти похожие ветки 

 
VictorT   (2002-07-01 11:34) [0]

Есть слово, нужно используя все буквы, которые есть в этом слове, получить, все возможные слова (не проверяя есть ли такое слово). Я уже реализовал это, используя неполный перебор, но может кто посоветует, что получше.


 
Виктор Щербаков   (2002-07-01 11:35) [1]

Дык если перебор не полный, то ты нашел не все варианты.


 
AFROLOV   (2002-07-01 11:48) [2]

Может есть некие ограничения? Например - слово должно состоять из слогов(их кол-во в русском языке ограничено). Тогда возможно полный перебор и не потребуется.


 
VictorT   (2002-07-01 11:48) [3]

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


 
VictorT   (2002-07-01 11:51) [4]


> AFROLOV © (01.07.02 11:48)

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


 
Виктор Щербаков   (2002-07-01 11:52) [5]

Что значит "неправильный вариант"? Это должно было быть в условии. А так - задача на получение всех перестановок. Вобщем простая.


 
VictorT   (2002-07-01 12:06) [6]


> Виктор Щербаков © (01.07.02 11:52)

Вот как-раз и не придумал, как красиво реализовать получение этих всех перстановок. Я сделал так:
допустим имеем слово из 8-ми букв. Имеем число 12345678 в восьмиричной же системе счисления, где каждый разряд означает, какая по номеру буква будет в данном месте. То-есть это число означает по сути тоже самое слово. Потом инкрементирую это число, и смотрю, если в нём нет одинаковых цифр, то получил следуюющее слово, иначе инкрементирую дальше. 8 букв тут только для примера. Может кто предложит более быстрый вариант?


 
Игорь Шевченко   (2002-07-01 12:22) [7]

VictorT © (01.07.02 12:06)

Школьная математика, раздел "комбинаторика"


 
VictorT   (2002-07-01 12:29) [8]


> Игорь Шевченко © (01.07.02 12:22)

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


 
VictorT   (2002-07-01 12:37) [9]

Вот даже ссылочку нашёл, подтверждающую мой предыдущий пост:
http://www.ksc.ru/cdo/books/tv/page13.html


 
Kaban   (2002-07-01 12:39) [10]

procedure GetWord(RestLetters, Word : String);
var i : Integer;
S : String;
Chr : Char;
begin
if RestLetters = "" then
begin
// Например пишем Word в файл
end
else
for i:=1 to Length(RestLetters) do
begin
S := RestLetters;
Chr := S[i];
Delete(S, i, 1);
GetWord(S, Word + Chr);
end;
end;


 
Игорь Шевченко   (2002-07-01 12:50) [11]

VictorT © (01.07.02 12:29)

Изменилась школьная программа за 16 лет :-)))

Я проходил...


 
AFROLOV   (2002-07-01 13:32) [12]

Почитай
http://algolist.manual.ru/maths/combinat/index.php
возможно найдешь работающий пример.


 
VictorT   (2002-07-01 13:48) [13]


> Kaban © (01.07.02 12:39)
> AFROLOV © (01.07.02 13:32)

Спасибочки, самое то.


 
Мых   (2002-07-01 19:51) [14]

to Шевчченко
А потом еще раз изменилась... Я тоже проходил и совсем недавно



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

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

Наверх




Память: 0.47 MB
Время: 0.007 c
14-95566
Извращенец
2002-06-28 16:57
2002.07.29
Музика для игры типа Энигматики


1-95278
didi
2002-07-17 11:19
2002.07.29
Деревянная проблема


14-95562
Frags
2002-07-01 20:33
2002.07.29
Правда что XP жесткие диски валит?


14-95487
vads
2002-06-30 22:10
2002.07.29
Навеяно веткой


6-95477
diogen
2002-05-17 20:35
2002.07.29
Как сэмулировать лвс из 2-х компов на 1-м под 98-ми





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский