Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Dopo alcuni anni di assenza dai cataloghi dei suoi televisori, Hisense riporta sul mercato una proposta OLED che punta tutto sul rapporto qualità prezzo. Hisense 55A85N è un televisore completo e versatile che riesce a convincere anche senza raggiungere le vette di televisori di altra fascia (e altro prezzo)
Recensione Borderlands 4, tra divertimento e problemi tecnici
Recensione Borderlands 4, tra divertimento e problemi tecnici
Gearbox Software rilancia la saga con Borderlands 4, ora disponibile su PS5, Xbox Series X|S e PC. Tra le novità spiccano nuove abilità di movimento, un pianeta inedito da esplorare e una campagna che lascia al giocatore piena libertà di approccio
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
NXTPAPER 60 Ultra è il primo smartphone con tecnologia NXTPAPER 4.0 per il display, un ampio IPS da 7,2 pollici. Con finitura anti-riflesso, processore MediaTek Dimensity 7400, fotocamera periscopica e modalità Max Ink per il detox digitale, NXTPAPER 60 Ultra punta a essere il riferimento tra gli smartphone pensati per il benessere degli occhi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-05-2004, 16:55   #1
gurutech
Senior Member
 
L'Avatar di gurutech
 
Iscritto dal: Jun 2000
Città: S.Giuliano (MI)
Messaggi: 1047
algoritmo pigreco

ciao a tutti,
sto cercando di calcolare pigreco, e per ora mi è venuto in mente solo quello che vedete qui sotto.
Probabilmente è una delle procedure computazionalmente più imprecise, perchè non riesco ad andare oltre la 20ma iterazione, poi diventa incoerente.
Conoscete altri metodi migliori?
Codice:
#!/usr/bin/perl

$l=1;

for ($i=0;$i<20;$i++) {
$m=1 - sqrt (1 - ($l**2)/4);
$l=sqrt($m*2);
$pigreco=6*(2**$i)*$l;
print "$i * $pigreco\n";
}
__________________
“No te tomes tan en serio la vida, al fin y al cabo no saldrás vivo de ella”
gurutech è offline   Rispondi citando il messaggio o parte di esso
Old 30-05-2004, 16:58   #2
gurutech
Senior Member
 
L'Avatar di gurutech
 
Iscritto dal: Jun 2000
Città: S.Giuliano (MI)
Messaggi: 1047
dimenticavo, i valori che calcolo sono
0 * 3.10582854123025
1 * 3.13262861328124
2 * 3.13935020304687
3 * 3.14103195089053
4 * 3.14145247228534
5 * 3.14155760791162
6 * 3.14158389214894
7 * 3.14159046323676
8 * 3.14159210604305
9 * 3.14159251658815
10 * 3.14159261864079
11 * 3.14159264532122
12 * 3.14159264532122
13 * 3.14159264532122
14 * 3.14159264532122
15 * 3.14159230381174
16 * 3.14159230381174
17 * 3.14158683965504
18 * 3.14158683965504
19 * 3.14167426502176
__________________
“No te tomes tan en serio la vida, al fin y al cabo no saldrás vivo de ella”

Ultima modifica di gurutech : 30-05-2004 alle 17:16.
gurutech è offline   Rispondi citando il messaggio o parte di esso
Old 30-05-2004, 17:08   #3
gurutech
Senior Member
 
L'Avatar di gurutech
 
Iscritto dal: Jun 2000
Città: S.Giuliano (MI)
Messaggi: 1047
da un punto di vista matematico, ho trovato questo
http://www.cecm.sfu.ca/pi/formulas.ps

e secondo questo
http://www.cecm.sfu.ca/projects/ISC/.../C/pi10000.txt

l'algoritmo che ho fatto ci azzecca alla 7ma cifra fino al 14mo ciclo poi comincia a sbagliare
__________________
“No te tomes tan en serio la vida, al fin y al cabo no saldrás vivo de ella”

Ultima modifica di gurutech : 30-05-2004 alle 17:12.
gurutech è offline   Rispondi citando il messaggio o parte di esso
Old 30-05-2004, 18:19   #4
gurutech
Senior Member
 
L'Avatar di gurutech
 
Iscritto dal: Jun 2000
Città: S.Giuliano (MI)
Messaggi: 1047
oops
secondo questa fonte
http://numbers.computation.free.fr/Constants/Pi/pi.html

sono rimasto tra i babilonesi e archimede...
__________________
“No te tomes tan en serio la vida, al fin y al cabo no saldrás vivo de ella”
gurutech è offline   Rispondi citando il messaggio o parte di esso
Old 30-05-2004, 20:13   #5
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da gurutech
oops
secondo questa fonte
http://numbers.computation.free.fr/Constants/Pi/pi.html

sono rimasto tra i babilonesi e archimede...


potresti in alternativa misurare la circonferenza di un cerchio e dividerlo per il diametro, solo che devi essere mooooolto preciso .




kingv è offline   Rispondi citando il messaggio o parte di esso
Old 30-05-2004, 20:45   #6
gurutech
Senior Member
 
L'Avatar di gurutech
 
Iscritto dal: Jun 2000
Città: S.Giuliano (MI)
Messaggi: 1047
Quote:
Originariamente inviato da kingv
potresti in alternativa misurare la circonferenza di un cerchio e dividerlo per il diametro, solo che devi essere mooooolto preciso .
è un'idea. si rischia di finire tra due estremi:

-A- Stato dell'Indiana : nel 1897 hanno provato a legiferare pi=3.2
http://faqs.jmas.co.jp/FAQs/sci-math-faq/indianabill
-B- Ramanujan
__________________
“No te tomes tan en serio la vida, al fin y al cabo no saldrás vivo de ella”
gurutech è offline   Rispondi citando il messaggio o parte di esso
Old 30-05-2004, 21:07   #7
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da gurutech


-A- Stato dell'Indiana : nel 1897 hanno provato a legiferare pi=3.2
http://faqs.jmas.co.jp/FAQs/sci-math-faq/indianabill

io spero che sia una bufala perche' in caso contrario tanti miei dubbi sulla sanità mentale della classe politica americana sarebbero giustificati.



posso chiederti perche' stai cercandoti un algoritmo "implementabile"? Vuoi farci su qualche tipo di benchmark?
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 30-05-2004, 22:41   #8
gurutech
Senior Member
 
L'Avatar di gurutech
 
Iscritto dal: Jun 2000
Città: S.Giuliano (MI)
Messaggi: 1047
Quote:
Originariamente inviato da kingv
io spero che sia una bufala perche' in caso contrario tanti miei dubbi sulla sanità mentale della classe politica americana sarebbero giustificati.
no, no giustificati pure

Quote:
posso chiederti perche' stai cercandoti un algoritmo "implementabile"? Vuoi farci su qualche tipo di benchmark?
spippolamento? insanità mentale?
Quote:
The amazing number pi Peter Borwein
[...]
Why compute the digits of PI? Sometimes it is necessary to do so, though hardly ever more than 6 or so digits that Archimedes computed several thousand years ago are needed for physical applications. Even far fetched computations like the volume of a spherical universe only require a few dozen digits. There is also the "Everest Hypothesis" ("because its there").
[...]
__________________
“No te tomes tan en serio la vida, al fin y al cabo no saldrás vivo de ella”
gurutech è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2004, 00:14   #9
gurutech
Senior Member
 
L'Avatar di gurutech
 
Iscritto dal: Jun 2000
Città: S.Giuliano (MI)
Messaggi: 1047
ora, nonostante sia l'una passata, non sono riuscito a resistere e ho costruito un'altro piccolo algoritmo per trovare pi per eccesso (quello di prima era per difetto):
Codice:
#!/usr/bin/perl

$R=2/(sqrt(3));
for ($i=1;$i<20;$i++) {
$l=sqrt(($R-1)/($R+1));
$R=sqrt((2*$R)/($R+1));
$pigreco=$l*6*(2**$i);
print "$pigreco\n";
}
pigreco sta matematicamente in mezzo tra i due algoritmi...

3.21539030917347
3.15965994209751
3.14608621513146
3.14271459964532
3.14187304997995
3.14166274705598
3.14161017660122
3.14159703431985
3.14159374879501
3.14159292765212
3.14159272140683
3.14159267301376
3.14159268159282
3.14159264371695
3.14159230341067
3.14159230371147
3.14158683962997
3.14158683964877
3.14167426502019
__________________
“No te tomes tan en serio la vida, al fin y al cabo no saldrás vivo de ella”

Ultima modifica di gurutech : 31-05-2004 alle 00:16.
gurutech è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2004, 00:54   #10
Frank1962
Senior Member
 
L'Avatar di Frank1962
 
Iscritto dal: Sep 2001
Città: de_legato
Messaggi: 792
ma che linguaggio stai usando? ...php ?
__________________
----------------------------------------------
File reality.sys corrupted, Reboot Universe? Y/N
----------------------------------------------
Frank1962 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2004, 01:12   #11
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Perl
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2004, 10:17   #12
gurutech
Senior Member
 
L'Avatar di gurutech
 
Iscritto dal: Jun 2000
Città: S.Giuliano (MI)
Messaggi: 1047
ecco, ho messo tutto qui
http://www.gurutech.it/polimi/pigreco.pdf
compreso come ho fatto a tirar fuori le formule.
Adesso è meglio che vada a studiare sul serio, vi lascio in omaggio questo link dove trovate la stessa cosa che ho fatto io in java

http://www.math.utah.edu/~alfeld/Arc...rchimedes.html
__________________
“No te tomes tan en serio la vida, al fin y al cabo no saldrás vivo de ella”
gurutech è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2004, 12:37   #13
Mixmar
Senior Member
 
L'Avatar di Mixmar
 
Iscritto dal: Feb 2002
Città: Trento
Messaggi: 962
Se vi interessano solo le cifre, consiglio:

http://mathworld.wolfram.com/BBPFormula.html

Questo sì che è avere tempo da perd... ehm, dedicare con profitto a ricerche superiori!
__________________
"Et Eärallo Endorenna utúlien. Sinome maruvan ar Hildinyar tenn' Ambar-metta!" -- Aragorn Elessar, Heir of Isildur
Mixmar -- OpenSuSE 11.1 on AMD 64 3000+ on DFI LanParty nF4-D | GeForce 6600 GT + Thermaltake Schooner on Samsung 710N
Storage -- ( 2 x Hitachi Deskstar 80 Gb + 1 x Hitachi 250 Gb ) = 1 RAID 5 + 1 Storage space LaCie Ethernet Disk Mini 250 Gb | HP - DV2150 EL MILAN CLAN
Mixmar è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2004, 19:14   #14
gurutech
Senior Member
 
L'Avatar di gurutech
 
Iscritto dal: Jun 2000
Città: S.Giuliano (MI)
Messaggi: 1047
Quote:
Originariamente inviato da Mixmar
Questo sì che è avere tempo da perd... ehm, dedicare con profitto a ricerche superiori!
ok ok, è solo una curiosità!

però leggiucchiando qua è là ho scoperto che sul calcolo di pi ci si può anche lucrare.
mi spiego: per calcolare 1 miliardo di cifre di pigreco in un tempo umano e senza errori con un computer, bisogna inventarsi un metodi di fare conti molto in fretta che poi può essere applicato a un'infinità di altri campi.
In questo senso il modo che abbiamo tutti imparato alle elementari per fare le moltiplicazioni, applicato ad un computer è una schifezza.
__________________
“No te tomes tan en serio la vida, al fin y al cabo no saldrás vivo de ella”
gurutech è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2004, 21:47   #15
/\/\@®¢Ø
Bannato
 
L'Avatar di /\/\@®¢Ø
 
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
Una serie molto efficace e' quella di Borwein e Borwein (1987), che aggiunge ad ogni iterazione 25 (!) cifre esatte.
La formula non e' proprio elegantissima, ma ci si puo' accontentare...
Codice:
1/pi = 12*somma(n da 0 a inf.)
( (-1)^n *(6n!)[ 212175710912 sqrt(61) + 1657145277365+n(13773980892672 sqrt(61) + 107578229802750)] / (n)!^3 (3n)! [5280 (236674 + 30303 sqrt(61)]^(3n+3/2)
/\/\@®¢Ø è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2004, 22:31   #16
/\/\@®¢Ø
Bannato
 
L'Avatar di /\/\@®¢Ø
 
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
Quote:
Originariamente inviato da gurutech
ora, nonostante sia l'una passata, non sono riuscito a resistere e ho costruito un'altro piccolo algoritmo per trovare pi per eccesso (quello di prima era per difetto):
Codice:
#!/usr/bin/perl

$R=2/(sqrt(3));
for ($i=1;$i<20;$i++) {
$l=sqrt(($R-1)/($R+1));
$R=sqrt((2*$R)/($R+1));
$pigreco=$l*6*(2**$i);
print "$pigreco\n";
}
pigreco sta matematicamente in mezzo tra i due algoritmi...

3.21539030917347
3.15965994209751
3.14608621513146
3.14271459964532
3.14187304997995
3.14166274705598
3.14161017660122
3.14159703431985
3.14159374879501
3.14159292765212
3.14159272140683
3.14159267301376
3.14159268159282
3.14159264371695
3.14159230341067
3.14159230371147
3.14158683962997
3.14158683964877
3.14167426502019
Devi fare attenzione ad una cosa importante, ovvero alla precisione dei tipi che usi per i conti. In questi casi e' praticamente necessario utilizzare numeri di precisione arbitraria. A meno di ricorrere a librerie pero', la maggior parte dei linguaggi supporta precisione arbitraria _al piu'_ sugli interi. Il fatto di usare funzioni come sqrt nel tuo caso probabilmente ammazza la precisione. Meglio piuttosto usare un algoritmo che operi sui razionali, anche se magari piu' lento, come il seguente


Il risultato che ho ottenuto io (in haskell) e' il seguente:

2.0
2.6666666666666665
2.933333333333333
3.0476190476190474
3.0984126984126985
3.1215007215007216
3.1321567321567323
3.137129537129537
3.139469680646151
3.140578169680337
3.1411060216013778
3.1413584725201362
3.1414796489611403
3.141537993173476
3.141566159344948
3.1415797881375958
3.1415863960370616
3.1415896055882304
3.141591166991502
3.141591927675147
3.1415922987403397
3.1415924799582244
3.141592568553635
3.1415926119088358
3.141592633144036
3.141592643553448
3.141592648659952
3.141592651166781
3.141592652398206
3.1415926530034826
3.1415926533011596
3.1415926534476357
3.141592653519747
3.1415926535552643
3.141592653572766
3.141592653581393
3.141592653585648
3.1415926535877468
3.141592653588783
3.141592653589294
3.1415926535895466
3.1415926535896714
3.141592653589733
3.1415926535897634
3.1415926535897785
3.141592653589786
3.1415926535897896
3.1415926535897913
3.1415926535897922
3.1415926535897927
3.141592653589793

come vedi converge in modo migliore, a differenza del tuo codice, che dopo un po' "sbarella" (ci sono comunque alcuni errori dovuti alla conversione da razionale a virgola mobile che provero' ad evitare)

Qui comunque trovi diverse formule, qualcuna puo' fare al caso tuo.

Ultima modifica di /\/\@®¢Ø : 31-05-2004 alle 22:37.
/\/\@®¢Ø è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2004, 23:06   #17
gurutech
Senior Member
 
L'Avatar di gurutech
 
Iscritto dal: Jun 2000
Città: S.Giuliano (MI)
Messaggi: 1047
Quote:
Originariamente inviato da /\/\@®¢Ø
A meno di ricorrere a librerie pero', la maggior parte dei linguaggi supporta precisione arbitraria _al piu'_ sugli interi.
potrei provare a passare il tutto a bc, dici che funzionerà?

Quote:
Il fatto di usare funzioni come sqrt nel tuo caso probabilmente ammazza la precisione. Meglio piuttosto usare un algoritmo che operi sui razionali, anche se magari piu' lento,
be' ho provato anche con leibnitz
pi/4 = 1 - 1/3 + 1/5 - 1/7 ...
ma per tirar fuori 7 cifre ci mette un milione di iterazioni :eheh:
__________________
“No te tomes tan en serio la vida, al fin y al cabo no saldrás vivo de ella”
gurutech è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2004, 23:15   #18
/\/\@®¢Ø
Bannato
 
L'Avatar di /\/\@®¢Ø
 
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
Quote:
Originariamente inviato da gurutech
potrei provare a passare il tutto a bc, dici che funzionerà?
boh non l'ho mai usato.




be' ho provato anche con leibnitz
pi/4 = 1 - 1/3 + 1/5 - 1/7 ...
ma per tirar fuori 7 cifre ci mette un milione di iterazioni :eheh: [/quote]
Beh, non troppo semplice
La formula che ho usato io ad esempio va gia' abbastanza bene...
forse ancora meglio una delle seguenti, tutte dovute a Ramanujan e che trovi nel link che ho riportato:
/\/\@®¢Ø è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2004, 23:22   #19
/\/\@®¢Ø
Bannato
 
L'Avatar di /\/\@®¢Ø
 
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
come non detto quelle tre forse non sono cosi' semplici (uhm... termine a pedice... )
la' puoi comuinque trovarne di opportune.
/\/\@®¢Ø è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2004, 22:59   #20
gurutech
Senior Member
 
L'Avatar di gurutech
 
Iscritto dal: Jun 2000
Città: S.Giuliano (MI)
Messaggi: 1047
ecco con bc(1) è molto meglio
Codice:
bash-2.05a$ time bc pigreco.bc 
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
3.1415926535897932384626433832795028841971693993751058209749445*02977\
93979003832755187039605537355163056713811295792041015968426903519036\
19418561079235059815597867847277845963233428011049306481123254672547\
06311502208770628628413205845869436023049732563569828695132669875998\
199952912012796343769788055552

real    0m12.504s
user    0m12.198s
sys     0m0.003s
sono giuste le prime 61 cifre (fino all'*). il codice è questo:
Codice:
scale=300
l=1
for (i=0; i<100; i++) {
m = 1 - sqrt(1-(l^2)/4)
l=sqrt(2*m)
pigreco=6*(2^i)*l
}
print pigreco
print "\n"

quit

(1)
Quote:
man bc
...
NAME
bc - An arbitrary precision calculator language
...
DESCRIPTION
bc is a language that supports arbitrary precision numbers with interactive execution of
statements. There are some similarities in the syntax to the C programming language. A
standard math library is available by command line option.
...
__________________
“No te tomes tan en serio la vida, al fin y al cabo no saldrás vivo de ella”
gurutech è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti Hisense A85N: il ritorno all’OLED è convi...
Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale TCL NXTPAPER 60 Ultra: lo smartphone che trasfor...
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni Nokia Innovation Day 2025: l’Europa ha bisogno d...
The Social Reckoning: il seguito di The ...
iPhone 16 si trova ora su Amazon a soli ...
Amazon fa a pezzi i prezzi dei monitor g...
Componenti hardware e periferiche PC a p...
Pianeta in crisi: 7 su 9 limiti vitali g...
Galaxy S25 FE con taglio di prezzo di 10...
4 robot aspirapolvere e 3 scope elettric...
Nuovissimi Xiaomi 15T e 15T Pro con tagl...
Le agenzie federali americane potranno u...
Smartphone pieghevoli sempre più ...
LG svela le Easy TV, una nuova gamma di ...
L'equipaggio della missione Shenzhou-20 ...
Possibili detriti spaziali del razzo cin...
Amazon distrugge i prezzi: TV OLED LG, i...
Trump studia dazi fino al 100% per sping...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 19:50.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v