Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
internet napsal(a):
Ověřování by vás asi rychle přestalo bavit, už 30! je řádu 10^32 a spolehlivě zjistit všechny jeho číslice s běžnými nástroji je obtížné.
Lukee napsal(a):
Akorát by mě zajímalo, co myslel těmi „běžnými nástroji”, protože já jsem zjistil odpověď s pomocí softwaru, který mám předinstalovaný v počítači :-).
tak jsem myslel, že mluvíš o cifrách čísla 30!
Offline
Aha, moje chyba, musím se přesněji vyjadřovat. Petr Koubský se na ty běžné nástroje odkazoval jen co se týče číslic 30!, já jsem to vztáhl na celou úlohu nalezení nejmenšího n, kde n! není Harshad číslo. To už právě s kalkulačkou jen tak nejde.
Offline
↑↑ Lukee:
Můžeš se prosím pochlubit tím asi desetiřádkovým programem? Mě nic tak krátkého nenapadá (samozřejmě za předpokladu, že nebudu používat knihovny, které dokážou pracovat s tak velkými čísly, a že nebudu psát na jeden řádek záměrně víc věcí než bych psal normálně).
↑↑ Stýv:
Vážně ti to stačilo jen naťukat? Mně kalkulačka dá výsledek 2,6525285981219105863630848e+32. Rozhodně bych si nebyl jistý, jestli mi dala všechny nenulové cifry (vím, že dala, ale třeba pro 35! už by nedala rovnou a musel bych ťukat trochu víc).
Offline
↑ Pavel Brožek:: Sice už jsem to smazal, protože jsem to psal přímo do konzole, ale zkusil jsem to napsat znovu. Knihovny pro velká čísla netřeba, Python s nimi umí pracovat. A měl jsem štěstí, vyšlo mě to přesně na deset řádků :-). Mělo by to přitom být „pythonic”.
def fac(n): return 1 if n == 0 else n * fac(n-1) def sumOfDigits(number): return sum([int(x) for x in str(number)]) for n in range(1, 500): fact = fac(n) if fact % sumOfDigits(fact) != 0: print(n)
EDIT: Kdyby měl Python nějakou standardní funkci „product” — totéž co „sum”, akorát pro násobení — tak by se to dalo zkrátit takto :-).
for n in range(1, 500): fact = product(range(1, n+1)) if fact % sum([int(x) for x in str(fact)]) != 0: print(n)
Offline
↑ Lukee:
Aha, netušil jsem, že Python takhle umí pracovat s čísly (v Pythonu jsem prakticky nikdy nedělal). To je pak jednoduché :-). Díky.
Edit: Přemýšlel jsem právě, jestli může být nějaký způsob, jak se počítání s velkými čísly vyhnout, ale asi spíš ne…
Offline
↑ Pavel Brožek: samozřejmě jsem se musel trochu zamyslet, kolik to bude mít na konci nul, a jestli počet cifer sedí
btw jen tak pro zajímavost, na jeden řádek v mojí oblíbený mathematice:)
Select[Range@500, Not@Divisible[#!, Total@IntegerDigits [#!]] &]
Offline
↑ Stýv:
V Mathematice jsem postupoval podobně :-)
n = 1; While[Mod[n!, Total[IntegerDigits[n!]]] == 0, n++]; n
Offline
No dobře, tak jsem to v Pythonu taky naházel na jeden řádek :-) (+ jeden import)
from operator import mul print([x[1] for x in [(reduce(mul, range(1, n+1)), n) for n in range(1, 500)] if x[0] % sum(map(int, str(x[0]))) != 0][0])
Offline
Offline
↑ Pavel Brožek: někdy nejsou zrovna nejefektivnější, viz např. http://www.dbaileyconsultancy.co.uk/m_p … mance.html
Offline
↑ Pavel Brožek:
„Můj algoritmus by aspoň fungoval i pokud by výsledek byl větší než 500 :-P”
Jo, to mi na tom mém řešení vadí. On Python nekonečné iterátory umí, ale nevlezou se asi na jeden řádek. While taky ne.
„Tak to bych podobně mohl říct, že ani není nutné pro každé číslo počítat faktoriál znovu.”
To je asi větší overkill, to je pravda. To už asi taky nepůjde upravit, v list comprehension si nemůžu nějak pamatovat poslední výsledek.
Offline
↑ Stýv:
Díky za odkaz.
Zmiňují tam Mathematica Workbench, tak jsem si vzpomněl, že jsem se jednou snažil zjistit, jestli se nedá nějak legálně získat (samozřejmě bez toho, abych musel platit £95.00, jak je u studentské licence uvedeno). Nevíš náhodou, jestli k tomu fakulta má licenci podobně jako na Mathematicu? Na internetu jsem o tom nic nenašel, ale nijak víc jsem to nezjišťoval.
Offline
↑ Pavel Brožek: jsem si celkem jistej, že máme licenci jenom na samotnou mathematicu
Offline
Omlouvám se, že ruším, dnes je opravdu potěšení číst výsostné téma.
Kolega přes PM se dotazuje:
bonifax napsal(a):
nevěděl jsem do jakého topicu to zařadit, a nikde jsem to nenašel, chtěl bych se zeptat, kde bych našel nástroj, pokud takovýto nástroj vůbec je, abych mohl rychle narýsovat třeba krychli, označit body, udělat přímky a vložit do tématu?
Netuším, děkuji za pomoc.
Jelena.
Offline
S nákresem nepomohu, zasílám ale další čtení
http://www.npr.org/2012/01/01/144550920 … &cc=fp
Offline
↑ Ondřej:
Děkuji :-) Já jsem spíš překládala.
----------------------------------
Doplňovala jsem odkazy v 1. příspěvku, tak jsem doplnila i přechod na online kreslení, ať se s tím trápí kolega Kondr, ne já.
Offline
Na oblíbeném Stack Exchange je teď nově v betě sekce pro Mathematicu, co jsem tak koukal, Stýv a Pavel B. tu jsou uživateli. Snad se bude hodit i jiným.
Offline
Byla jsem vyslána s depeši z Lážova, ještě jsem nedoručila, ale při hledání adresátů jsem narazila na fóru Mechmatu MGU na :-)
Offline
↑ Alivendes:
naše fórum? :-) V čem se libí více - ve znalosti zlomků nebo v zacházení s mateřským jazykem? (univerzitní kolega v odkazu totiž bojuje na všech frontách a vítězí).
Offline
↑ Hanis:
gratulace :-)
Změny budou - my zítra půjdeme pomalovat zeď ve třídě 1.A (nebýt Tebe, tak asi takové plány nemáme, děkuji ještě jednou).
Offline