перестановка слов или число размещений из списка. Комбинаторика.
Здравствуйте. Прошу помощи в решении такой задачи.
Дано: список слов в файле word.txt Пример: ========== я ты это здесь там да нет и много мало 12 1984 ========== Задача1: Создать все возможные перестановки с заданным числом элементов (К) и записать их в файл Задача2: Написать батник (bat) который при запуске запросит число элементов (К) прочитает файл word.txt и запишет результат в файл wordmix+K.txt Дополнение: Файл word.txt может состоять из любого количества слов и цифр, словом считается все что на строке. Файл wordmix+K.txt создать в той же директории где находится word.txt, здесь же запускаем батник. Пример: если К=2 решение: wordmix2.txt яты тыя тамздесь 12мало много1984 и т.д. Благодарю за внимание. |
MaximvsIT,
Это домашка? Давай алгоритм решения. |
Прошу по теме. Если есть варианты реализации поделитесь или направте в нужном направлении.
|
Цитата:
|
Ну может отчасти Вы и правы. В общем это Комбинаторика, число размещений (А)- это будет количество строк в новом файле wordMix.txt, К - это число элементов записанных в ряд из количества элементов N (количество слов (строк) из word.txt).
Что я делаю, @echo off спрашиваем К, запоминаем объявляем переменную Х, читаем первую строку, запоминаем объявляем переменную Y, читаем вторую строку, запоминаем склеиваем (не знаю как правильно) первую и вторую переменные, записываем в файл wordmixK.txt очищаем Y переменную, читаем третью строку из word.mix запоминаем как Y склеиваем (не знаю как правильно) первую и вторую переменные, записываем в файл на второй строке wordmixK.txt и т.д. Извините но только так. Что нашел по теме, только на VisualBasic Sub CalcCombin(I As Integer, u As Integer) Dim s As String; k As Integer, j As Integer For k=u To N If b(k) <> Empty Then If i = M Then c(i) = b(k) s="" For j = 1 To M s=s+c(j) Next j z=z+1 znach(z) = s Else c(i) = b(k) b(k) = Empty If proverka = True Then Call CalcCombin(i + 1, k + 1) Else Call CalcCombin(i + 1, 1) End If b(k)=c(i) End If End If Next k End Sub Прошу помощи в реализации этого алгоритма. Теорию понимаю на практике 0. |
Видимо не сдать мне лабу, в этом семестре ((( придется учить мат часть. Сразу скажу что хелп цмд мне никак не помогает. ((
Прошу помощи у спецов. Начал с малого пишу с нуля. @echo off rem Запрашиваем К-элемент set /p kset="Enter K - " echo K is - %kset% rem создает файл wordMix+K.txt COPY word.txt wordMix%Kset%.txt rem создаем К- количество перемененных ? set и дальше не знаю что типа if k<=0 do exit else k=2 do set w1,w2 rem читаем первую строку из файла word.txt и запоминаем for /F "tokens=*" %%i in (word.txt) do @echo %%i>>wordMix%kset%.txt ? Но увы не читает, а записывает все строки в файл, если менять значение tokens=* то работает со столбцами а нужно со строками, в конце делает echo %%i>>wordMix%kset%.txt а необходимо %%i=w1=первой переменной из K Думаю что такие задачи решались не однократно, поиск готовых результатов не дал. Открылся спортивный интерес. Прошу знающих людей откликнуться. |
Время: 01:26. |
Время: 01:26.
© OSzone.net 2001-