Avatar
Neaktivní uživatel:

Nazdar chlapi, poradíte my nejaký algoritmus na súčet všetkých permutácií nejakého čísla. Potrebujem algoritmus a nie zdroják ,

Odpovědět 9. dubna 13:09
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:

A ešte som zabudol, že číslice sa môžu aj opakovať

Editováno 9. dubna 13:16
Nahoru Odpovědět 9. dubna 13:15
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Petr Čech (czubehead):

Co myslíš přesně permutacemi s opakováním? Faktoriál? Tam se ale čísla neopakují.

Nahoru Odpovědět 9. dubna 14:44
Why so serious? -Joker
Avatar
Neaktivní uživatel:

Majme napr. číslo 4247, a potrebujem vypočítať súčet všetkých možných permutácií čísla , čiže 4247+4274+472­4...=?, vtip je ale v tom, že aj keď prehodíš 4 zo 4 tak to musíš brať ako nové číslo, čiže 4247 keď prehodím štyrky dostanem to isté číslo ale musím to pripočítať do súčtu. A ja potrebujem algoritmus ako toto všetko naprogramovať ?? Vopred diki za odpoveď.

Nahoru Odpovědět 9. dubna 15:25
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Petr Čech (czubehead):

Už chápu.
Nestačil by kód v C#? Nebo jak jinak mám popsat algoritmus?

Editováno 9. dubna 15:30
Nahoru Odpovědět 9. dubna 15:28
Why so serious? -Joker
Avatar
Odpovídá na Petr Čech (czubehead)
Neaktivní uživatel:

Stačil :D , ale pls popis mi tam aj komentáre, že čo robíš, diki.

Nahoru Odpovědět  +1 9. dubna 15:30
Neaktivní uživatelský účet
Avatar
coells
Redaktor
Avatar
Odpovídá na Neaktivní uživatel
coells:

Vždyť je to jen trocha elementární matematiky, zkus si rozepsat číslo 123 a určitě v tom najdeš systém.
Výsledný program je poměrně krátký.

static long permutationSum(long n, long i = 1, long f = 1, long g = 0, long h = 0) {
    if (n > 0)
        return permutationSum(n / 10, i + 1, f * i, g * 10 + 1, h + (n % 10));
    else
        return (i > 1) ? f * g * h / (i - 1) : 0;
}

static void Main()
{
    Console.WriteLine(permutationSum(123));
}
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 9. dubna 18:48
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.