Programátorská sociální síť a materiálová základna pro C#, Java, PHP, HTML, CSS, JavaScript a další.


Přihlásit se Registrace  

Výpočet čísla pi pomocí nekonečné řady

Zpět do sekce Ruby

Ukázka zdrojového kódu pro výpočet čísla Pí pomocí nekonečné řady v jazyce Ruby.

1000000000.times do |i|
   a = 1;
   a = -1 if (i % 2 != 0)
   pi += a * (1.0/ ((i * 2) + 1))
 end
puts (pi * 4.0)


 

Autor: sdraco
Autor je C# a PHP programátor, dále se věnuje webovým technologiím a redaktorské činnosti na portálu devbook. Rád své znalosti sdílí s komunitou a tak je rozšiřuje, věří, že smysl života je v poznání.
Unicorn College Autor se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.


Jak se vám líbí článek?
Ještě nikdo nehodnotil, buď první!


 


Všechny články v sekci
Ruby
Programovací jazyk Ruby, ke stažení materiály, ukázkové programy se zdrojovým kódem, odkazy, syntaxe


 

 

Vaše komentáře:

15.12.2011 16:23:59
Avatar
Lumír Kvita
Neregistrovaný

ahoj je to prosim v jazyce C++? kdyz tam tohle prepisu tak se mi to nezkompiluje, mam prave tuto ulohu na projekt a sem zacatecnik a nevim si s tim rady tak hledam nejakou pomoc, mam vypocitat cislo pi s presnosti na 10 000 znaku coz nepokryjou standartni datove typy tak to mam pry vyresit pres jinou knihovnu ale pres kterou to fakt nevim. Dekuji :)


Odpovědět
15.12.2011 19:51:58
Avatar
sdraco
Moderátor
Skill: Kvantový počítač
DotDotDotDotDotDotDotDotDotDot
Odpovídá na Lumír Kvita:

Nevím, jestli je tento rozvoj zrovna vhodný pro takhle extrémně mnoho míst, je to docela pomalý výpočet a i po milionu cyklů máte jen několik desetinných míst. Na druhou stranu když to necháte běžet přes noc, mohlo by to nějak vypadat. Každopádně bych to potom raději zkontroloval, zda se ta čísla shodují.

Jinak by ten kód vypadal asi takto (trochu se divím, že si to neumíte převést sám, je to extrémně triviální):

velkedesetin pi = 0;
for (velkecelocis i = 0; i < 99999999999999999999999; i++) {
   a = 1;
 if (i % 2 != 0) a = -1;
 pi += a * (1.0/ ((i * 2) + 1));
}

Budete si stejně muset sehnat knihovnu pro práci s extrémně velkými čísly a jejich typy nahradit velkedesetin a velkecelocis.


Odpovědět   i++; | i--;
You only get one shot, do not miss your chance to blow. This opportunity comes once in a lifetime.

 

Zobrazeno 2 z 2 zpráv


Přidat novou zprávu

Avatar
Neregistrovaný

Pro výhody se přihlaš. Pokud ještě nemáš účet, zaregistruj se.

Jméno:
E-mail:
Web:

Šťastný Smutný S vyplazeným jazykem Mrkající Smějící se Plačící Cool Nemocný Naštvaný S brýlemi Stydící se On to nebyl Překvapený Hodně překvapený Šokovaný Srdce sdraco
Vložení obrázků Obrázky mohou nahrávat pouze registrovaní uživatelé
Vložení dlouhého zdrojáku Pouze pro registrované

 

Pro ověření prosím zaškrtněte pravdivá tvrzení:
Registrovaní uživatelé se tímto zdržovat nemusí. Zaregistrovat se

Jsem člověk
Chci porušovat pravidla
Píši zprávu i přesto, že nemá žádný význam
Nehodlám dodržovat pravidla