jakie obliczenia można prowadzić na liczydle,

Aug 24, 2005 Last reply: 20 years ago 18 Replies

Jak prowadzi sie obliczenia na liczydle? dzieki pozdrawiam Michal



Polecam odpowiedni fragment ksiazki 'Pan raczy zartowac, panie Feynman' :-)

pozdrawiam

krzys

Mój ojciec, jeszcze z czasów liczydeł twierdzi że umie policzyć pierwiastek.

Konrad

< Mój ojciec, jeszcze z czasów liczyde³ twierdzi ¿e umie policzyæ pierwiastek.>

Brawo, brawo, o to mi chodzilo pytanie tylko jak bo oprocz sumy to mi jakos ciezko wiesz moze jak takie obliczenia prowadzic ?? pozdrawiam Michal

A nie wiem. Jakieś sztuczki magiczne. Właściwie, po rozłożeniu na któryś z ciągów, możnaby każdą funkcję wyrazić dodawaniem i odejmowaniem.

Konrad

Na Ukrainie Panie w sklepach dodają ceny na takim dużym liczydle;) Widziałam na własne oczy.

Użytkownik "MK" <mi-koz[NIE LUBIE SPAMU]@wp[precz ze spamem].pl> napisał w wiadomości news:dehdbu$8tr$ snipped-for-privacy@nemesis.news.tpi.pl...

Dowolne.

Zobacz tytaj

formatting link
google na abacus A.L.

Wed, 24 Aug 2005 11:06:53 +0200 jednostka biologiczna o nazwie "MK" <mi-koz[NIE LUBIE SPAMU]@wp[precz ze spamem].pl> wyslala do portu 119 jednego z serwerow news nastepujace dane:

Rozumiem twój problem. Właśnie mam na drugim kompie uruchomiony CP/M-86 i też kombinuję "co by tu jeszcze" :-)

MK <mi-koz[NIE LUBIE SPAMU]@wp[precz ze spamem].pl> napisał(a):

Może algorytm herona ?

Osoby chore na autyzm podobno błyskawicznie wyciągają pierwiastki z ogromnych liczb. Ciekawe wg jakiego algorytmu?

WM

I pierwiastek trzeciego stopnia...

A.L.

Wlodzimierz napisał(a):

Intuicyjnie, wydaje mi sie ze metaoda kolejnych przyblizen. Tak przynajmniej ja bym sie do tego zabral. Autyzmy nie mam ... chyba :)

Użytkownik "MK" <mi-koz[NIE LUBIE SPAMU]@wp[precz ze spamem].pl> napisał w wiadomości news:dehdbu$8tr$ snipped-for-privacy@nemesis.news.tpi.pl...

a'propos: żona moja posiada skarb w postaci wielgachnego przedwojennego jeszcze liczydła. To było liczydło profesjonalne, zawodowego księgowego (czy jak się tam wtedy to nazywało), ono oprócz normalnych rzędów z dziesięcioma krążkami na każdym i wydzielonych dwóch rzędów do liczenia groszy ma jeszcze coś dziwnego: znajdujący się pomiędzy tymi groszowymi a normalnymi dodatkowy pręt na którym są tylko cztery krążki. Do czego to było? Do liczenia "ćwiartek"?

J.

To prawda, wystarcza zaledwie 2 (nieskonczone... ;-)) rzedy koralików, by na takim liczydle (zwanym w informatyce maszyna dwulicznikowa) zasymulowac maszyne Turinga, a wiec i dowolny program, m.in. Matlaba. :-)

Pozdrawiam Piotr Wyderski

Hm, uwzgledniajac odleglosc pomiedzy "punktami przerzutu" i skonczona predkosc swiatla, mozna by wprowadzic nowa jakosc do teorii logarytmow :-)

Hm .. mowisz ze dwa rzedy wystarcza ? Jak chcesz zakodowac informacje i jak chcesz wykonac operacje np przesuniecia tasmy o jeden znak ?

J.

Jarek P. <jarek[kropka] snipped-for-privacy@gazeta.pl napisał(a):

Tu jest instrukcja obsługi liczydeł.

formatting link
formatting link

WM

Tak. Udowodni³ to Minsky w latach chyba 60-tych.

Idea jest trudna do natychmiastowego uchwycenia, wiêc dojd¼my do tego ma³ymi krokami. Mamy maszynê Turinga o k symbolach ta¶mowych. Mo¿emy j± zasymulowaæ za pomoc± maszyny dwustosowej: jeden ze stosów bêdzie reprezentowa³ czê¶æ ta¶my na lewo od g³owicy, a drugi na prawo. Komórki stosu odpowiadaj± bezpo¶rednio komórkom MT, a przesuniêcie g³owicy to zdjêcie symbolu z jednego stosu i od³o¿enie go na drugi; operacje zapisu nowego symbolu i odczytu wierzcho³ków stosu s± oczywiste. Do tego miejsca wszystko powinno byæ jasne.

Teraz zasymulujemy te 2 stosy za pomoc± 3 liczników, gdzie ka¿demu stosowi przydzielimy jeden licznik, a pozosta³y jeden bêdzie "rejestrem tymczasowym". Symbole stosowe to symbole oryginalnej maszyny i jeden symbol zarezerwowany do oznaczania koñca danych na stosie (tj. dna stosu), by sterowanie wiedzia³o, kiedy skonczyæ. Ca³± zawarto¶æ ka¿dego ze stosów mo¿emy interpretowaæ jako pojedyncz± liczbê naturaln± w uk³adzie pozycyjnym o podstawie b = k+1 -- przez odpowiednio wielokrotne dzielenie z reszt± przez b mo¿emy z tej liczby wyci±gn±æ zawarto¶æ dowolnie wybranej komórki. Jak ³atwo siê domy¶liæ, liczby koduj±ce zawarto¶æ stosów bêd± pamiêtane w licznikach.

Aby w pe³ni odtworzyæ funkcjonalno¶æ stosów, trzeba dostarczyæ operacji push(x), pop() i x = top(). Zostan± one oparte na operacjach mno¿enia i dzielenia przez r oraz dostarczanym przez licznik operacjach inkrementacji i dekrementacji (na liczydle: dosuwanie albo odsuwanie jednego koralika). Dodawanie i odejmowanie liczby x takiej, ¿e 0 <= x < b, jest ³atwe i odbywa siê przez x-krotn± inkrementacjê /dekrementacjê zawarto¶ci licznika; poniewa¿ b jest sta³±, to mo¿na to zakodowaæ w sterowaniu skoñczonym (mówi±c po "elektronicznemu": zrealizowaæ odpowiedni± maszynkê stanów). Maj±c te operacje, mno¿enie i dzielenie przez r te¿ staje siê proste -- np. to ostatnie to wielokrotne odjêcie b od jednego licznika i dodanie 1 do drugiego, a¿ siê pierwszy z nich wyzeruje. I to wszystko: push(x) to pomno¿enie zawarto¶ci licznika przez b i dodanie x, pop() to podzielenie przez b, a top() to obliczenie warto¶ci licznika modulo b (pamiêtaj, ¿e b to sta³a!).

Jak widaæ (mam nadziejê...), 3 liczniki (rzêdy liczyd³a koduj±ce zawarto¶æ licznika w systemie unarnym) wystarcz± do zakodowania dowolnej MT. Teraz robi siê jeszcze jeden krok, pokazuj±cy, ¿e 3 liczniki da siê zakodowaæ na 2 licznikach, ale przypuszczam, ¿e to nie jest dla Ciebie istotne, tj. chcia³e¶ siê przekonaæ, ¿e pewna _skoñczona_ liczba liczników wystarczy, a nie wyznaczaæ minimum.

Pozdrawiam Piotr Wyderski

Wlasnie o ten krok mi chodzi, bo na poprzednie wpadlem.

J.

OK, no to teraz robimy tak: jeden licznik bêdzie u¿ywany jako rejestr tymczasowy, a w drugim zapamiêtujemy stan trzech liczników z poprzedniego kroku korzystaj±c z jednoznaczno¶ci rozk³adu liczby naturalnej na czynniki pierwsze, bior±c np. takie liczby pierwsze: 2, 3, 5. Wówczas warto¶æ kodowana bêdzie mia³a postaæ (2^x)*(3^y)*(5^z), gdzie x, y i z to warto¶ci symulowanych liczników. Inkrementacja/dekrementacja ka¿dego z nich zamienia siê wiêc na pomno¿enie/podzielenie przez 2, 3 albo 5, co kodujemy w sterowaniu skoñczonym, jak w poprzednim li¶cie. W ten sam sposób sprawdzamy, czy wybrany licznik ma warto¶æ 0 -- przez obliczenie jego warto¶ci modulo zwi±zana z nim podstawa. I to ca³a sztuczka. :-)

Nawiasem mówi±c takie kodowanie warto¶ci wielu zmiennych w jednej to czêsto wykorzystywany trick teoretyczny, w ten sposób mo¿na zapisaæ program korzystaj±cy z dowolnie wielu zmiennych tak, by korzysta³ tylko z jednej zmiennej (+ rejestr tymczasowy).

Pozdrawiam Piotr Wyderski

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required