Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   перестановка слов или число размещений из списка. Комбинаторика. (http://forum.oszone.net/showthread.php?t=230465)

MaximvsIT 15-03-2012 17:30 1880067

перестановка слов или число размещений из списка. Комбинаторика.
 
Здравствуйте. Прошу помощи в решении такой задачи.
Дано: список слов в файле word.txt Пример:
==========
я
ты
это
здесь
там
да
нет
и
много
мало
12
1984
==========
Задача1: Создать все возможные перестановки с заданным числом элементов (К) и записать их в файл
Задача2: Написать батник (bat) который при запуске запросит число элементов (К) прочитает файл word.txt и запишет результат в файл wordmix+K.txt
Дополнение: Файл word.txt может состоять из любого количества слов и цифр, словом считается все что на строке. Файл wordmix+K.txt создать в той же директории где находится word.txt, здесь же запускаем батник.
Пример: если К=2 решение:
wordmix2.txt
яты
тыя
тамздесь
12мало
много1984
и т.д.

Благодарю за внимание.

Foreigner 15-03-2012 20:09 1880196

MaximvsIT,
Это домашка? Давай алгоритм решения.

MaximvsIT 15-03-2012 21:41 1880265

Прошу по теме. Если есть варианты реализации поделитесь или направте в нужном направлении.

Iska 15-03-2012 23:06 1880316

Цитата:

Цитата MaximvsIT
Прошу по теме. »

MaximvsIT, это и было — по теме: Правила форума «Программирование», п.6.

MaximvsIT 18-03-2012 19:26 1881893

Ну может отчасти Вы и правы. В общем это Комбинаторика, число размещений (А)- это будет количество строк в новом файле 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.

MaximvsIT 20-03-2012 18:37 1883429

Видимо не сдать мне лабу, в этом семестре ((( придется учить мат часть. Сразу скажу что хелп цмд мне никак не помогает. ((
Прошу помощи у спецов.
Начал с малого пишу с нуля.
@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-