První novoroční výprodej Java týden
Hledáš brigádu v IT, která bude 100 % home office a 100 % flexibilní? Pak napiš na: redakce [zavináč] itnetwork.cz pro více info!
80 % bodů zdarma díky akci Black Friday! Tento týden rovněž sleva na e-learning Java až 80 %

Diskuze: Program na řešení rovnice x^3 + y^3 + z^3 = k

Aktivity (2)
Avatar
Denisa Váňová:15.12.2019 20:05

Ahoj, budu ráda za jakékoliv naťuknutí k tomuto úkolu :

Napište program, který pro zadané číslo k najde všechna celočíselná řešení rovnice x3 + y3 + z3 = k větší než −100 a menší než 100. V případě, že v zadané množině řešení neexistuje, program vypíše, že řešení neexistuje.

Upřímně vůbec nevím, co s tím.

Máme to jako procvičování do základů programování, takže děláme opravdu jen základní a jednoduché věci.

Moc děkuji za jakoukoliv radu.

 
Odpovědět
15.12.2019 20:05
Avatar
Reaktivní uživatel:15.12.2019 20:59

Řekl bych, že prostě (ve třech zanořených cyklech) projdeš čísla od -100 do 100 a vyzkoušíš, jestli to platí, nebo ne (pokud ano, uložíš/vypíšeš kombinaci).

Nahoru Odpovědět
15.12.2019 20:59
Kdo je připraven, toho zaskočí něco jiného
Avatar
David Flieger:16.12.2019 5:12

Jedno řešení, jak již bylo řečeno, je projít všechny možnosti. Druhá je projít jen polovinu možností a to díky symetrii příkladu. Uděláš to tak, že v prvním cyklu projdeš všechna čísla x(-100;100), v druhém všechna y(-100;x) a ve třetím všechna z(-100;y).

 
Nahoru Odpovědět
16.12.2019 5:12
Naši partneři možná hledají právě tebe!
Avatar
Odpovídá na David Flieger
Reaktivní uživatel:16.12.2019 17:45

Jestli jsem neudělal nějakou hloupost, zredukuješ tím počet možností dokonce jen na šestinu ;-) (hold jsem ti nevěřil, že to má až takový dopad, a teď mám věřit něčemu takovému :-D )

Nahoru Odpovědět
16.12.2019 17:45
Kdo je připraven, toho zaskočí něco jiného
Avatar
Odpovídá na Reaktivní uživatel
David Flieger:17.12.2019 4:18

To, že jsi mi nevěřil je v pořádku. A přijímám i to, že jsem se zmýlil. Ta šestina dává smysl, protože se pro každý kořen vyhneme permutacím (i,j,k), kterých je 6, ale pohlížel jsem na to geometricky a dokázal jsem si představit jen hranice množiny, tak jsem je spojil nejkratší cestou.

 
Nahoru Odpovědět
17.12.2019 4:18
Avatar
Denisa Váňová:22.12.2019 17:33

Díky moc, snad už jsem to konečně pochopila :)
Vytvořila jsem toto, tak snad to dává smysl.

k = int(input("Zadejte číslo:"))

reseni = False
for x in range(-100,100):
    for y in range(-100,100):
        for z in range(-100,100):
            if x**3+y**3+z**3 == k :
                print(x," ",y," ",z)
                reseni = True
if reseni == False :
    print("Nemá v zadaném intervalu řešení.")
 
Nahoru Odpovědět
22.12.2019 17:33
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 6 zpráv z 6.