[C#] Arrays - 20 задача


1
20.Write a program that reads two numbers N and K and generates all the variations of K elements from the set [1..N]. Example:

  N = 3, K = 2  -> {1, 1}, {1, 2}, {1, 3}, {2, 1}, {2, 2}, {2, 3}, {3, 1}, {3, 2}, {3, 3}




Отговори



8

http://pastebin.com/TFDe7gEP

Малко разяснения:

1. Прочитаме K и N. Създаваме масив от K елемента, защото всяка вариация има точно K елемента и ще я отпечатваме на конзолата при всеки край на рекурсията.

2. Създаваме рекурсивен метод, който ще върти всеки път индекса на масива и ще го попълва с различните стойности от 1 до N. Края на метода ще достига, когато индекса достигне дължината на масива. Тогава вместо да попълваме, директно отпечатваме резултата.

3. Ако не е достигнат този край, за всяко число от 1 до N попълваме текущия индекс в масива и извикваме рекурсивно метода за индекс + 1.

4. Извикваме метода за декларирания масив и индекс = 0 и се наслаждаваме на резултата.


от ivaylo.kenov (30760 точки)


0
Добро решение. Моето е същото само, че пълня масива на обратно и го печатам на обратно. :Д http://pastebin.com/pCBc0iQ4

от VGeorgiev (2890 точки)

0
Има някакъв бъг при печатането на първия ред Например при к=3 n=3 ; 121 122 123 Мисълта ми е че индекс 1 винаги започва с стойност 2, а трябва всички индекси да започват с стойност едно к=5 n=5 => 11111

от Assi.NET (3050 точки)


6

Ето и моите решения: вариациикомбинациипермутацииРазгледайте разликите. Решенията са с рекурсия.

Все едно трябва да направите k вложени цикъла, които се въртят от 0 до n.

Ако някой е забравил комбинаториката - bg.wikipedia.org/wiki/Комбинаторика.


от jasssonpet (6814 точки)


3
http://pastebin.com/0PgffTg1

от Rokata (397 точки)


1
Ето едно решение и от мен, има коментар в кода..
http://pastebin.com/tNhUnGJD

от psabinski (129 точки)


1
Решението ми: http://pastebin.com/7amRB2jC
Добре си припомних Вариациите и Комбинациите с тази и следващата задачи.

от werew (576 точки)


0

Моето решени. Прилича разбитра се на другите, но все пак не знам как да го реша без рекурсия. Някой да каже ако знае!

 

http://pastebin.com/cKXyaUqt


от deyan.keray (266 точки)


1
Мъчих се часове наред да измисля без рекурсия, накрая ми писна, прочетох малко за рекурсията и изгледах една лекция на Наков - в резултат задачата я направих за 5 минути.
http://pastebin.com/5XhXWtkN
Моля някой да сподели решение без - много би ми помогнало!

от stann1 (1378 точки)


0
А коя лекция на Наков по-точно гледа ?

от kiril_toshev (565 точки)


28
итеративно решение, без рекурсия.

базирано на бройни системи...

http://pastebin.com/AmsQUmGN

от no_response (155 точки)


0
Супер - кратко и ясно.

от stann1 (1378 точки)

0
Страхотно решение, много ми беше полезно, тъй като исках да намеря решение без рекурсии, но нещо не ми се получаваше.

от evlogi.hristov (2645 точки)



1
Решенията както с рекурсия така и интеративен вариянт са дадени обяснени на страница 367 от учебника. Това е с рекурсията (за тези им е по-лесно като мен да разберат да я разгледат направо като програма, само имената на някои променливи са сменени) :
http://pastebin.com/uwcKwkhu

от Al.polichronov (1567 точки)


0
Здравейте, ето го тук и моето решение: http://pastebin.com/wytU2Nrj :)

от Plamen.Minkov (216 точки)