Форум: "Потрепаться";
Текущий архив: 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.006 c