Autor | Zpráva | ||
---|---|---|---|
Networker Profil |
#1 · Zasláno: 28. 9. 2014, 16:19:15 · Upravil/a: Moderátor (editace znemožněna) 29. 9. 2014, 20:42:23
Ahoj,
mohli byste mi prosím Vás napsat jeden script v JS? V odkazu posílám obrázek toho, co by mělo být napsané. fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-xfa1/v/t1.0-9/10380737_391507971002583_7198369904522447462_n.jpg?oh=969c1533a9bd75915a21c40d3d9641b8&oe=548BDBA2&__gda__=1421795732_3a3ca9989378573a88224e87eb2b630e Pro zkušeného je to práce na minutku :-) Děkuji mockrát |
||
mimochodec Profil |
#2 · Zasláno: 28. 9. 2014, 16:57:27 · Upravil/a: mimochodec
Pro zkušeného to je mnohem rychlejší, protože ti obratem řekne, že tohle nemá s JS vůbec co dělat. Zkus si otevřít nějaký word a tam najít editor rovnic nebo jak se to jmenovalo.
aha, teď si říkám, že to možná nechceš javascriptem zobrazovat, ale počítat. Pak ano. Ukaž, cos vytvořil a nějak se to udělá. |
||
Networker Profil |
#3 · Zasláno: 28. 9. 2014, 17:23:04
Ano, počítat a zobrazovat výsledky. Nemusí to být se vstupama, stačí mi napsat vzorec výpočtu v JS a udělat výpis ...
Zatím jsem nic nevymyslel, jak na to :-( Děkuji moc za výsledek :-) |
||
Joker Profil |
Networker:
„Děkuji moc za výsledek :-)“ Přibližně 1,10517? :-) Samotný výpočet je opravdu poměrně triviální. Máme tam sumu, což je v programování for-cyklus. Uvnitř je zlomek, dělení taky v JavaScriptu máme. V čitateli je mocnina, na mocnění v JS taky existuje funkce. A ve jmenovateli je faktoriál, ten si už pravda musíme napsat sami, ale je to v programování oblíbený začátečnický příklad a návodů jsou všude kupy. Dále když se nad problémem trochu zamyslíme, vlastně ani mocnění a faktoriál nepotřebujeme. Pokud K v každém cyklu roste o 1, tak hodnota čitatele (0,1^K) je vždycky čitatel z předchozího cyklu dělený 10 a hodnota jmenovatele (K!) je jmenovatel z předchozího cyklu vynásobený K. Čili když první cyklus vypočíváme rovnou: citatel = 1; jmenovatel = 1; vysledek = 1 a cylus začneme s K=1 a v každém cyklu jen citatel vydělíme 10, jmenovatel vynásobíme K a k výsledku přičteme (citatel/jmenovatel).
Takže nakonec je potřeba jen jeden for-cyklus a aritmetické operátory. |
||
Alphard Profil |
V reakci na snahu řešit to v C++ po neúspěchu v JS Vyzná se tu někdo v C++? - Pomoc s doděláním dodávám raději řešení v JS. Úpravu navrženou Jokerem nehávám stranou, asi to tak bude lepší.
<script> // http://natashatherobot.com/factorials-javascript-recursion/ var factorial = function(n) { if(n <= 1) { // tuhle podmínku jsem upravil oproti zdroji, ale pořád neřeším float vstupy return 1 } else { product = 1; for(i = 1; i <= n; i++) { product *= i; } return product; } } var result = 0; for (var k = 0; k <= 20; k++) { result += Math.pow(0.1, k)/factorial(k); } document.write(result); </script> |
||
Časová prodleva: 11 let
|
0