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
Stránky: 1
Zdravím ↑ doll:
Algoritmus? Ty se vytvářejí pro obecnější úlohy, (třeba nejmenší číslo dělitelné 1 až n), tato úloha má jednoduché řešení, které se dá za minutu spočítat (2520).
↑ standyk:
Pochopil jsem, že to ↑ doll: nechce obecně.
Offline
↑ doll:
Hneď prvá odvoveď tam ale hovorí, že stačí použiť:
lcm(1,2,3,...,10) = lcm(1, lcm(2, lcm(3, lcm(4, lcm(5, lcm(6, lcm(7, lcm(8, lcm(9, 10)))))))))
Ak to potrebuješ spočítať len pre 1..10 tak to môžeš takto natvrdo vypísať.
Budeš tam ešte samozrejme potrebovať funkciu ktorá Ti vypočíta
kde
vieš vypočítať napríklad pomocou Euklidovho algoritmu.
Offline
Konkrétně pro tento případ by algoritmus mohl být třeba:
int vysledek=0;
bool nalezeno=false;
while(!nalezeno){
vysledek++;
nalezeno=true;
for(int delitel=1; delitel<=10; delitel++){
if(vysledek%delitel!=0){
nalezeno=false;
break;
}
}
}Vím, že je to neefektivní, ale je to algoritmus, kterým se to číslo najde a dotyčný vůbec nemusí vědět, jak se NSN počítá.
Offline
↑ doll:
Ten kód se dá (s minimálními úpravami) použít v mnoha jazycích (který ovládáš ty? nebo neovládáš žádný?).
Zajímalo by mě, co je (bylo?) vlastně záměrem.
1: Jestli zjistit, jaký je NSN čísel od 1 do 10,
2: nebo zjistit postup, jakým to vypočítat,
3: nebo zjistit algoritmus pro stroj aby to spočítal,
4: nebo co vlastně.
5: Dále zda jsi to chtěla sama pro sebe,
6: nebo to máš jako zadání (ze školy například).
1: Od toho tu je wolframalpha.
2: Od toho je tu wikipedie.
3: ↑ Miky4:, ale napsalas, že tomu kódu nerozumíš, takže tento důvod to asi nebude.
4: Co vlastně?
5: Možnosti 1 nebo 2.
6: Pokud po vás chtěli možnost 3, tak nechápu, proč nezadali úlohu obecně.
Offline
↑ doll:
Bohužel, já zase neovládám Pascal, ale postup je asi takovýto:
Postupně se procházejí přirozená čísla. U každého z nich se testuje, zda je dělitelné všemi čísli od 1 do 10 a když ne, tak se přejde k dalšímu číslu.
Pro čísla od 1 do 10 by měl i tento jednoduchý postup "hrubou silou" stačit. Ideální by bylo to spočítat, tak jak to popisují na wikipedii, tedy rozdělit na prvočinitele atd, ale to už je asi nad rámec.
Offline
Stránky: 1