OldComp.cz
http://oldcomp.cz/

Počítání pí
http://oldcomp.cz/viewtopic.php?f=136&t=7454
Stránka 14

Autor:  lukz [ 25.05.2019, 11:41 ]
Předmět příspěvku:  Počítání pí

Při hledání informací, jak se v minulosti počítala hodnota čísla pí, jsem narazil na zajímavý článek na stránkách univerzity Wittenberg, s názvem ENIAC a pí (v angličtině) [1]. Jeden z profesorů této univerzity, Brian Shelburne, se zajímal proč a jak byla na počítači Eniac počítána hodnota pí, a co zjistil v archívech, potom sepsal do vědeckého článku.

Sice jsem samotný vědecký článek nečetl, ale na webu je možné najít prezentaci, ze které je možné poznat, jak asi takový ENIAC pracoval. A napadá mě, že by výpočet šlo nasimulovat i na Sharpu, jako program v Basicu.

ENIAC měl 20 akumulátorů, do kterých bylo možné uložit čísla, provádět nad nimi výpočty, a připadně přesouvat hodnoty mezi akumulátory. Z těchto 20 bylo ovšem pro uživatele dostupných jen 12, ostatní sloužily na uchování pomocných hodnot při provádění některých složitějších operací.

Myslím, že akumulátory by bylo možné simulovat pomocí normálních číselných proměnných. Dále měl ENIAC možnost použít děrné štítky pro vstup, a také generovat děrné štítky na výstupu. Štítky je zas možné nasimuloval pomocí pole. Aby to odpovídalo realitě, tak by se dodržovalo pravidlo, že pole je možné číst buď odpředu dozadu, nebo obráceně, ale není možné do pole přistupovat v náhodném pořadí.

Další informace pak přidám, až se mi to povede víc rozpracovat.

[1] http://www.wittenberg.edu/news/2013/03_14_pi.html

Autor:  faraon [ 25.05.2019, 19:13 ]
Předmět příspěvku:  Re: Počítání pí

Eniac nebyl počítač v dnešním slova smyslu, ale hromada hardwarových bloků, ze kterých se pomocí propojovacích kabelů a přepínačů "sestavil obvod", řešící konkrétní výpočet. Podobně jako v analogových počítačích. Ale dokázali tam udělat i cykly! Nebo spíš dokázaly, protože to často zapojovaly a programovaly ženské.

Takže Babbage byl o dost dál ;-)

Autor:  lukz [ 26.05.2019, 12:50 ]
Předmět příspěvku:  Re: Počítání pí

Byly dva způsoby, jak se zadávaly programy do ENIACu. První, jediný možný způsob po sestavení stroje, byl pomocí fyzických přepínačů na jednotlivých modulech a propojení pomocí vodičů mezi jednotlivými moduly. Tento způsob byl dosti časově náročný.

Druhý způsob se objevil později, a celý počítač byl "zadrátován" jedním programem, který četl kódy, a podle kódů prováděl něco jako instrukce. Programování počítače potom spočívalo v připravení kódů a jejich zapsání do počítače, a bylo mnohem rychlejší.

Publikace popisující systém zapojeni ENIACu, který zpracovává instrukce:
https://archive.org/details/DTIC_ADB205179/page/n1

citace z abstraktu:
Citace:
During the first two years of operation, problems were coded for the ENIAC by listing complicated sets of switch settings and cable connections. Meanwhile new machines were being designed with a small but sufficient vocabulary of operations to each of which a number was assigned. Problems were to be coded for these machines by listing a logical sequence of these numbers. Application of such a system to the ENIAC, described in this report, has been possible with only minor electronic changes. ...

Výpočet pí se prováděl roku 1949, kdy už byl dostupný druhý způsob.

Autor:  danhard [ 26.05.2019, 18:28 ]
Předmět příspěvku:  Re: Počítání pí

"Cena opravy letadlové lodi Admirál Kuzněcov, řízené ožralými ruskými námořníky cestou do Sýrie a přitažené zpět do Ruska na laně: 70 000 000 rublů.
Cena opravy nepotopitelné fregaty KNM Helge Ingstad, řízené genderově způsobilými navigátorkami a potopené u norského pobřeží po nárazu do tankeru: 90 000 000 000 rublů."

Z toho vyplývá jen, že v Rusku mají levné letadlové lodě :lol:
Ale trefiliy se holky pěkně https://3kbo302xo3lg2i1rj8450xje-wpengi ... 0x420.jpeg prý to měly jen odřený.

Autor:  Busy [ 26.05.2019, 20:22 ]
Předmět příspěvku:  Re: Počítání pí

danhard píše:
"Cena opravy letadlové...
Ako to suvisi s vypoctom PI ?

Autor:  faraon [ 26.05.2019, 20:55 ]
Předmět příspěvku:  Re: Počítání pí

Nijak, kromě toho že to jsou pořádné Pí...

lukz: Takže tam vlastně zadrátovali BASIC. Nebo Javu? Možná by bylo dobré doplnit název na "Počítání Pí - simulace ENIACu".

Autor:  danhard [ 26.05.2019, 21:19 ]
Předmět příspěvku:  Re: Počítání pí

Busy píše:
danhard píše:
"Cena opravy letadlové...
Ako to suvisi s vypoctom PI ?

Nijak, ragoval jsem jen na tu genderovou otázku, chlap by se uhnul, ženská jenom brzdí.

Mám to vyzkoušený na svých autech, několikrát jsem to hodil i do pole na střechu, abych se vyhnul střetu, ale za zezadu to do mě napraly dvě ženský :lol:

Papírově nebyla žádná havárie z mé viny, ale občas i někdo ujel.

Autor:  tomascz [ 26.05.2019, 22:54 ]
Předmět příspěvku:  Re: Počítání pí

Busy píše:
danhard píše:
"Cena opravy letadlové...
Ako to suvisi s vypoctom PI ?
Prosimtě děláš jako bys ho neznal :-) Srovnává ceny rublu v 80.letech a 0.letech a diví se, že mu to nevychází :lol: Tak nějak kolorit tohodle webu, kdy se "faraon" vždycky vyjádří k něčemu, co si přečet na jeho "nezávislých" webech a hned si to bezmyšlenkovitě lupne do statusu. Už jsme tu měli osvětu k Novičoku, Huawei a nevím k čemu všemu dalšímu. Bohužel s tím admini nic nedělají, tak na to tady musíme halt koukat... Enjoy :-)

Autor:  faraon [ 26.05.2019, 23:26 ]
Předmět příspěvku:  Re: Počítání pí

Lžeš jak Rudé právo. Zkus tohle:
https://www.armadninoviny.cz/vazna-nehoda-ruske-letadlove-lode-admiral-kuznecov-a-ztrata-klicoveho-doku-pd-50.html
https://www.armadninoviny.cz/oprava-norske-helge-ingstad-by-stala-vic-nez-nova-lod.html
Prosím potvrdit přečtení, aby to admini mohli následně promazat.

Autor:  tomascz [ 27.05.2019, 15:49 ]
Předmět příspěvku:  Re: Počítání pí

S datem ruské kocábky jsem se fakt seknul, google mi původně vyplivnul jinou ruskou kocábku :-)

Nikde jsem ale nedočetl, že by námořníci byli ožralí. Článek o ruské loďce taky informuje, že "v současné době není znám rozsah škod." Prosím o doplnění zdrojů.

Autor:  lukz [ 27.05.2019, 15:58 ]
Předmět příspěvku:  Re: Počítání pí

faraon píše:
Takže tam vlastně zadrátovali BASIC.

Já bych ty zadrátované instrukce nenazýval BASIC, aby se to nepletlo. BASIC byl vyvíjen až roku 1964, a byl to v podstatě vysokoúrovňový programovací jazyk pro počítač.

To, co zadrátovali do ENIACu byl systém, který instrukce programu četl z jednoho modulu. Takže na rozdíl od toho, kdy původně program byl vyjádřen pomocí toho, jak datové vodiče propojovaly jeden modul s druhým, a program byl tedy rozházený po celém stroji, tak teď byl program na jednom centrálním místě.

Instrukce byly od jednoduchých po složitější:

vynuluj akumulátor 15
přenes hodnotu z generátoru konstant do akumulátorů 11 a 15 (možno vybrat z několika možností, které dvě hodnoty se přenesou)
vlož do akumulátoru 15 dvojciferné číslo uložené jako další kód v programu
vlož do akumulátoru 8 trojciferné číslo uložené jako další kód v programu
halt (zastav výpočet)
vynuluj akumulátor x, potom přičti k x hodnotu z akumulátoru 15 (x je 1-5, 7-12, 14 nebo 16-19)
přičti k 13 hodnotu z akumulátoru 15
k akumulátoru 15 přičti hodnotu z akumulátoru x
přečti hodnotu z funkční tabulky do akumulátorů 11 a 15
změň znaménko akumulátoru 15 na plus
obrať znaménko akumulátoru 15
shiftuj číslo v akumulátoru 15 doleva/doprava
vynásob hodnoty z akumulátorů 15 a 11
vyděl hodnotu z akumulátoru 15 hodnotou v akumulátoru 7
spočítej odmocninu čísla v akumulátoru 15

Vytiskni jeden štítek
Načti jeden štítek ze vstupu

skoč na jíné místo v programu
podmíněně skoč pokud číslo v akumulátoru 15 je nezáporné

Autor:  lukz [ 29.05.2019, 12:41 ]
Předmět příspěvku:  Re: Počítání pí

Při výpočtu pí nebudu dělat úplně věrnou simulaci ENIACu. Ten jsem zmínil spíš
jako inspiraci, protože jeho možnosti byly dosti omezené. A tedy, co šlo
spočítat na něm, půjde nejspíše spočítat i na osobním počítači.

Princip výpočtu je počítání jednotlivých členů řady a jejich postupné
přičítání. Vlastně půjde o dvě řady, a jejich pár členů si můžeme zobrazit
následujícím jednoduchým programem.

Kód:
2 X=4/5
3 F.I=0TO4
4 ?X,X/(2*I+1):X=-X/25
5 N.:?
7 X=-1/239:I=0
8 ?X,X/(2*I+1)

Výsledek:

Kód:
 .8        .8
-.032     -1.0666667E-2
 .00128    .000256
-.0000512 -7.3142857E-6
 2.048E-6  2.2755556E-7

-4.1841004E-3       -4.1841004E-3

V horní části v prvním sloupečku jsou čísla postupně dělená 25. Ve druhém
sloupečku je číslo z prvního sloupečku, vydělené postupně 1, 3, 5, 7, 9. Také
znaménko se obrací na každém řádku. Ve spodní části je začátek druhé řady,
která se sestavuje podobně jako ta první, jen se postupně dělí číslem 239^2.

Po sečtení všech čísel ze druhého sloupečku dostaneme 0.78539815, což se velmi
blíží π/4.

Autor:  lukz [ 11.06.2019, 13:55 ]
Předmět příspěvku:  Re: Počítání pí

Dopsal jsem kompletní program, pro ty zvědavé a trpělivé je přiložen na konci. Je
možné ho napsat do Sharpa a spustit. Ovšem pozor, výpočet trvá dlouho.

Princip výpočtu jsem popisoval minule - používá se součet
arctg(1/5) + arctg(1/239).

Členy řady se počítají na 1506 destinných míst, tím je možné získat pí přesné na
1500 desetinných míst.

ENIAC měl jen malé množství paměti, takže pomocná data bylo nutné ukládat na děrné
štítky. Probíhalo to tedy tak, že pro každý člen řady se spočítalo několik
desetinných míst, a na výstupní štítek se zapsal zbytek. Když se probraly všechny
členy, tak se ještě zapsal celkový součet. Potom se všechny výstupní štítky se
zbytky vzaly, vložily na vstup, a proběhl nový cyklus, který opět spočítal několik
dalších desetinných míst. Musel tam být nejspíše někdo, kdo ručně štítky přendaval
z výstupu na vstup.

V programu tomu odpovídá cyklus na řádcích 8 až 26. V každém průchodu se přečtou
data z minulého průchodu a spočítají se nová data, která se uloží do polí RA a RB.
Pole R obsahuje součty členů na určité desetinné pozici.

I něco takového jsme tedy schopni spočítat ve starém BASICu.

Přílohy:
pibas.png
pibas.png [ 3.53 KiB | Zobrazeno 14570 krát ]

Autor:  Mikes21 [ 11.06.2019, 17:10 ]
Předmět příspěvku:  Re: Počítání pí

Pekne, co znamena dlouho? Jsem ted tyden mimo, ale az se vratim domu, tak bych to rad zkusil. A muzu to zkusit spustit na BASICu s ALU ;-) Treba se to o dost urychli. Jen tak pro zvedavost. Pro zajimavost, jak dlouho to trvalo na ENIACu?

Autor:  Milsa [ 28.07.2019, 21:57 ]
Předmět příspěvku:  Re: Počítání pí

Skúšal si to?

Stránka 14 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/