![>](style_images/1/nav_m.gif)
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.188.228.135] |
![]() |
|
Сообщ.
#1
,
|
|
|
нужна эффективная генерация перестановок Ckn;
ну или вывести все варианты перестановок, допустим из А,А,А,А,Б,Б, без повторений(кол-во А-элементов и Б-элементов задаётся)... P.S. надеюсь понятно ![]() |
![]() |
Сообщ.
#2
,
|
|
Поищи тут: http://194.87.63.15/math/
|
Сообщ.
#3
,
|
|
|
Не то :'(
|
Сообщ.
#4
,
|
|
|
Ckn - кол-во возможных перестановок.
Ckn = n!/(k!*(n-k)!). показать все возможные перестановки из n элементов А А А Б Б Б Б (n=7), где k = либо 3, либо 4 (k и n - задаются). P.s. надеюсь на Ваше знание и опыт.... :'( |
Сообщ.
#5
,
|
|
|
http://algolist.manual.ru/maths/combinat/index.php
|
Сообщ.
#6
,
|
|
|
Цитата plan, 15.03.03, 03:07:49 Ckn - кол-во возможных перестановок. Ckn = n!/(k!*(n-k)!). показать все возможные перестановки из n элементов А А А Б Б Б Б (n=7), где k = либо 3, либо 4 (k и n - задаются). P.s. надеюсь на Ваше знание и опыт.... :'( Чего ж тут сложного то, делаешь большой цикл, в нем переставляешь и записываешь перестановки в память, новые сравниваешь с уже имеющимися, по окончании все скидываешь в текстовый файл. Что тебе конкретно нужно? Как делать циклы?.. сравнивать строки? или как записывать в файл? или тебе всю прогу написать? на каком языке? |
Сообщ.
#7
,
|
|
|
Мне бы без сравнения и записи в массив, чтобы повторов просто не было :)
|
Сообщ.
#8
,
|
|
|
Цитата Чего ж тут сложного то, делаешь большой цикл, в нем переставляешь и записываешь перестановки в память, новые сравниваешь с уже имеющимися, по окончании все скидываешь в текстовый файл. Мне бы без сравнения и записи в массив. Просто, чтоб не генерировал одинаковые. :) |
Сообщ.
#9
,
|
|
|
Цитата plan, 15.03.03, 03:07:49 Ckn - кол-во возможных перестановок. Ckn = n!/(k!*(n-k)!). показать все возможные перестановки из n элементов А А А Б Б Б Б (n=7), где k = либо 3, либо 4 (k и n - задаются). P.s. надеюсь на Ваше знание и опыт.... :'( Цитата int n = 7, k = 3; for (int i = 0; i < (1<<n); i++) { AnsiString S = ""; int rk = 0; for (int j = 0; j < n; j++) if (i&(1<<j)) S += "Б"; else { S += "A"; rk++; } if (rk == k) ShowMessage(S); } не оптимальная по скорости |
Сообщ.
#10
,
|
|
|
![]() ![]() <br><br>int n = 7, k = 3; <br> for (int i = 0; i < (1<<n); i++) <br> { <br> AnsiString S = ""; <br> int rk = 0; <br> for (int j = 0; j < n; j++) <br> if (i&(1<<j)) S += "Б"; <br> else <br> { <br> S += "A"; <br> rk++; <br> } <br> if (rk == k) ShowMessage(S); <br> } <br><br> Ребят, а как бы это на Паскале? :) Цитата не оптимальная по скорости А вот скорость-то и нужна... :-/ |
Сообщ.
#11
,
|
|
|
Я те на мыло отправил чё просил, только я там не всё понял, но большую часть написал ;D
|
Сообщ.
#12
,
|
|
|
ja uzhe pisal otvet tut na etot vopros
smotri nizhe reshenie v u4ebnike ivanova po diskretke tam est samij normalnij optimalinj sposob |
Сообщ.
#13
,
|
|
|
Цитата ja uzhe pisal otvet tut na etot vopros smotri nizhe reshenie v u4ebnike ivanova po diskretke tam est samij normalnij optimalinj sposob Не понял, где ты писал? ??? Дай ссылку... Как всётаки эту прогу на си на паскаль переписать? и пояснение. ??? |