Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se Swiftu. Zároveň využij výhodnou slevovou akci až 30 % zdarma při nákupu e-learningu - více informací.
swift week + discount 30
Avatar
Denisa Váňová:1.1.2020 16:42

Ahoj, potřebovala bych poradit u tohoto příkladu.

Je dáno číslo n, po kterém následuje n čísel – prvků množiny M.
Vypište všechny permutace čísel z množiny M.

Nevím, zda to vůbec chápu správně.

Uživatel například zadá číslo 3, poté následuje zadání 3 čísel - např. 3, 6, 8. Mají být vypsané faktoriály jednotlivých čísel? Jakože 6 (3!), 720 (6!) a 40320 (8!) nebo se po mně chce něco jiného? :D Děkuji za rady.

Zkusil jsem: Jsem úplný začátečník, ale zkusila jsem toto:

n = int(input("Zadejte číslo:"))
seznam = list(range(n))

for i in range(n):
    seznam[i] = int(input("Zadejte" + " " + str(i+1) + " . číslo:"))

b = 1
vysledek = 1
for i in range(n):
    while b <= seznam[i]:
        vysledek = vysledek*b
        b = b+1
    print(vysledek)
 
Odpovědět
1.1.2020 16:42
Avatar
Odpovídá na Denisa Váňová
Neaktivní uživatel:1.1.2020 17:15

Wikipedie říká:

Permutace n-prvkové množiny je uspořádaná n-tice obsahující každý prvek právě jednou, takže jednoznačně určuje jedno z možných uspořádání těchto prvků. (…) V komibinatorice se také uvažují permutace s opakováním, zahrnující i taková uspořádání prvků, ve kterém se některé prvky vyskytují vícekrát.

…čili máš vypsat čísla ve všech možných pořadích. Zkus to teď :-)

Jen tak mimochodem, myslím, že chceš odstranit mezeru před tečkou na pátém řádku ;-)

Nahoru Odpovědět
1.1.2020 17:15
Neaktivní uživatelský účet
Avatar
Denisa Váňová:1.1.2020 17:24

Díky, za oboje :) Jen si nejsem jistá, jak začít, když nevím, kolikaprvková ta množina bude. Kdyby byla např. dvouprvková, dám dva for cykly, to už chápu :D, ale takto?

 
Nahoru Odpovědět
1.1.2020 17:24
Avatar
Odpovídá na Denisa Váňová
Neaktivní uživatel:1.1.2020 17:46

Znáš už slovo def?

Nahoru Odpovědět
1.1.2020 17:46
Neaktivní uživatelský účet
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Denisa Váňová:1.1.2020 17:49

Pokud by to šlo i bez toho, bylo by to fajn. Dělám tyto příklady jako procvičování do školy a funkce máme jako takovou nadstavbu, takže není nutnost to pro ukončení předmětu ovládat, tak se do toho moc ani nechci pouštět.

 
Nahoru Odpovědět
1.1.2020 17:49
Avatar
Odpovídá na Denisa Váňová
Neaktivní uživatel:1.1.2020 17:57

Výrazně by sis tím zjednodušila práci… Dneska mám sice zpomalené myšlení, takže je velmi dobře možné, že jsem na něco zapomněl, ale zatím se mi nepodařilo to vymyslet bez funkcí.

S nimi pro každé číslo z pole zavoláš tu samou funkci s polem bez daného čísla (které připojíš na začátek) – jen si musíš pohlídat prázdné/jednomístné pole.

Edit: a budeš umět něco, co ostatní ve třídě neumí :-P

Editováno 1.1.2020 17:59
Nahoru Odpovědět
1.1.2020 17:57
Neaktivní uživatelský účet
Avatar
Denisa Váňová:1.1.2020 18:35

Tak se zkusím hecnout a nějak se tím prokousat:) Díky

 
Nahoru Odpovědět
1.1.2020 18:35
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.