Forum » Programiranje » [Naloga] Eulerjevo število
[Naloga] Eulerjevo število
Volk| ::
Rabil bi nekaj formul za izracun Eulerjevega števila.
Vem da je bedasto...toda rabil bi formulo(e) da jo sprogramiram...naloga za šolo...
edit: se opravicujem ce sem zgresil temo
Vem da je bedasto...toda rabil bi formulo(e) da jo sprogramiram...naloga za šolo...
edit: se opravicujem ce sem zgresil temo
- spremenilo: snow ()
Volk| ::
To sem videl...sem upal da bom najdo kako bolj "enostavno" formulo.
Le kak naj izracunam limito v C
Le kak naj izracunam limito v C
_______________________________________________________
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Matek ::
Saj tiste limite ne mores nikakor izracunati. Zadeva je pac iracionalno stevilo, tako da se v vsakem primeru uporablja priblizek. V wiki clanku mas neskoncno zaporedje, katerega vsota je e (pa tudi hamax ti ga je prilepil zgoraj), noben problem ga ni spravit v kodo, potem pa das zadevo v for zanko s par tisoc ponovitvami, ko postanejo reci dovolj majhne, da je tvoj priblizek kul. Ce hoces se bolj smiselno resitev, preverjaj stevilo, ki ga pristejes v vsakem koraku in imej zadevo v while zanki, ki se prekine, ko je to stevilo dovolj majhno, tako da bos lahko nadzoroval na koliko decimalk natancno je zadeva izracunana.
Bolje ispasti glup nego iz aviona.
Zgodovina sprememb…
- spremenil: Matek ()
Volk| ::
Evo, sprogramiral sem prvo.
Zdaj se moram sprogramirat da mi program izracuna limito...huh...ta bo tezka..
skoda da ni v knjiznici math.h
Zdaj se moram sprogramirat da mi program izracuna limito...huh...ta bo tezka..
skoda da ni v knjiznici math.h
_______________________________________________________
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Volk| ::
Je ze nekaj casa kaj sem hodil k matematiki. Kako se racuna limita?
KLIK
Torej, da lahko sprogramiram tole.
KLIK
Torej, da lahko sprogramiram tole.
_______________________________________________________
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
sverde21 ::
e je število, ki ga dobimo tako, da limitiramo tisti izraz proti neskončno... Torej bolj kot je n velik bolj natančen e dobiš. Tako da lahko vstaviš kot n eno poljubno število, ki je pametno da je precej veliko (saj tako dobiš natančnejši približek e-ja) in izračunaš e.
Example koda v Javi:
Example koda v Javi:
class euler { public static void main(String[] args) { System.out.println(e()); } private static double e() { double n = 1000000L; return Math.pow(1 + 1 / n, n); } }
<?php echo `w`; ?>
kihc ::
svedre: tvoje rešitev je s performančnega stališča katastrofalna (na faxu bi najbrž dobu 0 pik).
Morš dat v zanko, pa seštevaš elemente; s tem da se vsak naslednji element od prejšnjega razlikuje le za faktor 1/n.
Morš dat v zanko, pa seštevaš elemente; s tem da se vsak naslednji element od prejšnjega razlikuje le za faktor 1/n.
x
Volk| ::
Kaj pa neskoncni ulomek? Tudi s tem se da zracunat, kaj?
_______________________________________________________
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
kihc ::
Števila e se ne da natančno izračunat (tako kot pi ima tudi e neskončno decimalk).
Ti pač seštevaš ulomke dokler ne dobiš natančosti kot je želiš (recimo, če želiš 5 decimalk natančno, seštevaš dokler ni en ulomek manjši od 0,000001, ko imaš ta pogoj izpolnjen, nehaš prištevat).
Ti pač seštevaš ulomke dokler ne dobiš natančosti kot je želiš (recimo, če želiš 5 decimalk natančno, seštevaš dokler ni en ulomek manjši od 0,000001, ko imaš ta pogoj izpolnjen, nehaš prištevat).
x
Volk| ::
Vem kaj je e, bolj mi je problem sestevat neskoncni ulomek. Ravno gledam kako to gre.
Torej na zacetku imam 2 kateremu pristejem naslednji ulomke ki je 1/?....in tako dalje...
kaj je tisti '?'
Torej na zacetku imam 2 kateremu pristejem naslednji ulomke ki je 1/?....in tako dalje...
kaj je tisti '?'
_______________________________________________________
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
netanyahu ::
Lažje kot z računanjem neskončnega ulomka boš vrednost dobil z izračunom limite ali ene od preprostih neskončnih vsot. Člene vsote enostavno seštevaš v zanki.
Izpis:
// http://en.wikipedia.org/wiki/Representations_of_e class E { public static void main(String[] args) { double e; System.out.printf("%16s %16s\n", "priblizek", "|priblizek - e|"); // prava vrednost { e = Math.E; System.out.printf("%.14f %.14f\n", e, Math.abs(e-Math.E)); } // e = lim {n->inf} (1 + 1/n)^n { double n = 1e6; e = Math.pow(1 + 1/n, n); System.out.printf("%.14f %.14f\n", e, Math.abs(e-Math.E)); } // e = sum {k=0..inf} (1 / (k!)) { e = 0; int n = 15, kf = 1; for(int k=0; k<=n; k++) { e += 1 / (double)kf; kf *= (k+1); } System.out.printf("%.14f %.14f\n", e, Math.abs(e-Math.E)); } // e = sum {k=1..inf} (k^4 / (15*(k!))) { e = 0; int n = 15; double kf = 1; for(int k=1; k<=n; k++) { e += (k*k*k*k) / (15 * kf); kf *= (k+1); } System.out.printf("%.14f %.14f\n", e, Math.abs(e-Math.E)); } } }
Izpis:
priblizek |priblizek - e| 2,71828182845905 0,00000000000000 2,71828046909575 0,00000135936329 2,71828183008457 0,00000000162553 2,71828182823340 0,00000000022564
kihc ::
Ja ulomki, ki te zanimajo gredo takole (na začetku je 1/1 = 1 katero si že štel v tisti dvojki ki si jo omenu): 1/2, naslednji ulomek je 1/(2*3) = 1/6, naslednji ulomek je 1/(2*3*4) = 1/12, itd ...
Nočem ti glihk direkt algoritma zapisat ker pol je brezveze.
Nočem ti glihk direkt algoritma zapisat ker pol je brezveze.
x
Volk| ::
1/(2*3*4) = 1/24
Malo si se zmotil. Ok, razumem kako se mnozi in sesteva.
Bom sprogramiral zadevo...se ze itak predolgo ukvarjam s tem.
Hvala
Malo si se zmotil. Ok, razumem kako se mnozi in sesteva.
Bom sprogramiral zadevo...se ze itak predolgo ukvarjam s tem.
Hvala
_______________________________________________________
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Volk| ::
Ok, programiranje je bilo lazji del.
Saj bi prilepil kodo, toda sem pozabil(vcasih sem vedel) katere html oznake moram vkljucit da se ahko prikaze koda.
Ce mi bo kdo povedal bom prilepil kodo
Saj bi prilepil kodo, toda sem pozabil(vcasih sem vedel) katere html oznake moram vkljucit da se ahko prikaze koda.
Ce mi bo kdo povedal bom prilepil kodo
_______________________________________________________
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
sverde21 ::
@kihc: a ma kakšno vezo kolk bi dobu na faxu za teh 5 vrstic? Rešitev je očitno več, napisal sem tisto, ki se mi zdi najlažja, pa čeprav ni najboljša.
EDIT: spet sem prehitro bral in spregledal da je to naloga... čeprav, zakaj ni moderator dodal pred naslov teme [Naloga], ko je že premikal temo
@Volk|: [ st.koda][ /st.koda] brez presledkov pred [ seveda... če pa imaš kodo v c, php, java, javascript, vb, perl, pascal ali html pa pišeš takole [ st.koda jezik][ /st.koda jezik]
EDIT: spet sem prehitro bral in spregledal da je to naloga... čeprav, zakaj ni moderator dodal pred naslov teme [Naloga], ko je že premikal temo
@Volk|: [ st.koda][ /st.koda] brez presledkov pred [ seveda... če pa imaš kodo v c, php, java, javascript, vb, perl, pascal ali html pa pišeš takole [ st.koda jezik][ /st.koda jezik]
<?php echo `w`; ?>
Zgodovina sprememb…
- spremenil: sverde21 ()
Volk| ::
double vsota=1; double k=1; double i=1; for(i;i<=pogoj;i++) { k*=i; double temp= 1/k; vsota+= temp; } return vsota;
_______________________________________________________
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
Izobražen je tisti človek, ki ve, kje bo našel tisto, česar ne ve.
gani-med ::
# En eleganten primer algoritma za računanje števila e v Pythonu
# 1000 decimalk izpljune v trenutku
def steviloe(decimalk):
___e = 10 ** (decimalk + 5)
___sig = u = n = 1
___cnt = 0
___while cnt < 10:
_____e = (e * (u+1))//u
_____u = (n+1)*(u+1)
_____n += 1
_____leastsig = e & 1111
_____if leastsig == sig: cnt += 1
_____else:
_______sig = leastsig
_______cnt = 0
___se = str(e)
___return se[0]+"."+se[1:decimalk+1]
print steviloe(1000)
edit: popravljena poravnava, znak _ zamenjaj s presledkom
(Pythonova kaprica glede poravnave)
še razlaga:
upošteva se dejstvo da je
1 + 1/1! + 1/2! + 1/3!+ 1/4! + 1/5!
mogoče zapisati kot 1+(1+(1+(1+(1+1/5)/4)/3)/2)/1
# 1000 decimalk izpljune v trenutku
def steviloe(decimalk):
___e = 10 ** (decimalk + 5)
___sig = u = n = 1
___cnt = 0
___while cnt < 10:
_____e = (e * (u+1))//u
_____u = (n+1)*(u+1)
_____n += 1
_____leastsig = e & 1111
_____if leastsig == sig: cnt += 1
_____else:
_______sig = leastsig
_______cnt = 0
___se = str(e)
___return se[0]+"."+se[1:decimalk+1]
print steviloe(1000)
edit: popravljena poravnava, znak _ zamenjaj s presledkom
(Pythonova kaprica glede poravnave)
še razlaga:
upošteva se dejstvo da je
1 + 1/1! + 1/2! + 1/3!+ 1/4! + 1/5!
mogoče zapisati kot 1+(1+(1+(1+(1+1/5)/4)/3)/2)/1
CO2 is the elixir of life.
Zgodovina sprememb…
- spremenilo: gani-med ()
gani-med ::
def steviloe(decimalk): e = 10 ** (decimalk + 5) sig = u = n = 1 cnt = 0 while cnt < 10: e = (e * (u+1))//u u = (n+1)*(u+1) n += 1 leastsig = e & 1111 if leastsig == sig: cnt += 1 else: sig = leastsig cnt = 0 se = str(e) return se[0]+"."+se[1:decimalk+1] print steviloe(1000)
## Ja, tole zgleda lepše
CO2 is the elixir of life.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
⊘ | [C#]naloga iz metod!Oddelek: Programiranje | 1674 (1507) | Ziga Dolhar |
» | Java problemOddelek: Programiranje | 1620 (1318) | infiniteLoop |
» | [NALOGA][Java] SinusOddelek: Programiranje | 1313 (1245) | Lukeatluke |
» | [java] napakaOddelek: Programiranje | 1605 (1605) | tx-z |
» | [Naloga][Java] UlomkiOddelek: Programiranje | 2675 (2523) | SkIDiver |