Condividi:        

? Algoritmo della funzione Round()

Hai problemi con i file Zip, vuoi formattare l'HD, non sai come funziona FireFox? O magari ti serve proprio quel programmino di cui non ricordi il nome! Ecco il forum dove poter risolvere i tuoi problemi.

Moderatori: Dylan666, hydra, gahan

Postdi feno » 19/01/04 17:19

Essendo che come aveva detto pj il 5 sta nel mezzo a me alle superiori avevano insegnato che per arrotondare il 5 si guarda la cifra successiva
Esempio

1,54 = 1,5
1,56 = 1,6

rimane solo il problema dell'arrotondamento del 1,5555555 periodico nel qual caso non ricordo come ci si dovesse comportare.
Cià

F@no
feno
Utente Senior
 
Post: 268
Iscritto il: 29/05/02 08:36
Località: Somewhere in Italy

Sponsor
 

Postdi Mikizo » 19/01/04 18:02

feno ha scritto:Essendo che come aveva detto pj il 5 sta nel mezzo a me alle superiori avevano insegnato che per arrotondare il 5 si guarda la cifra successiva
Esempio

1,54 = 1,5
1,56 = 1,6

rimane solo il problema dell'arrotondamento del 1,5555555 periodico nel qual caso non ricordo come ci si dovesse comportare.

Qui si parla di come arrotodare 1,5 a nessuna cifra decimale, se a 1 o a 2 ;)
Oppure 1,55 ad una sola (se ad 1,5 o ad 1,6)
E così via
Avatar utente
Mikizo
Download Admin
 
Post: 8517
Iscritto il: 05/01/02 01:00
Località: Outside

Postdi Dylan666 » 19/01/04 18:19

Il tempo delle superiori è passato già da un po' e il quesito di piercing non trova risposta in quanto appena detto da feno (il caso posto vuole che non ci siano, o non si vogliano prendere in considerazione, cifre dopo il 5 e si voglia comunque operare un'approssimazione)
Io provo a "dire la mia" in modo molto empirico, cioè facendovi vedere cosa accadrebbe se si proceddesse come dice il manuale di pier o meno:
L'originale è qui
Codice: Seleziona tutto
Sommare i numeri 4,35; 8,65; 2,95; 12,45; 6,65; 7,55; 9,75 (a) direttamente, (b) arrotondando al primo decimale secondo la convenzione del "numero pari", (c) arrotondando aumentando il numero prima del 5.

Soluzione:

    (a) 4,35    (b) 4,4    (c) 4,4
        8,65        8,6        8,7
        2,95        3,0        3,0
       12,45       12,4       12,5
        6,65        6,6        6,7
        7,55        7,6        7,6
        9,75        9,8        9,8
      _______     ______     ______
tot    52,35       52,4       52,7

Si noti che il procedimento (b) è migliore del procedimento (c), poiché gli errori cumulativi di arrotondamento in b) vengono minimizzati

Quindi aveva ragione pjfry :P
Quanto ho detto purtroppo non chiarisce la "provenienza storica" di questo tipo di arrotondamento, ma ne spiega il perché sia stato inventato (e che non è un "capriccio" di M$). Cercherò il nome corretto di tale procedura e eventualmente ve lo farò sapere.
Ultima modifica di Dylan666 su 20/01/04 16:00, modificato 2 volte in totale.
Avatar utente
Dylan666
Moderatore
 
Post: 39988
Iscritto il: 18/11/03 16:46

Postdi pjfry » 19/01/04 19:13

Dylan666 ha scritto:Quindi aveva ragione pjfry :P
Quanto ho detto purtroppo non chiarisce la "provenienza storica" di questo tipo di arrotondamento, ma ne spiega il perché sia stato inventato (e che non è un "capriccio" di M$). Cercherò il nome corretto di tale procedura e eventualmente ve lo farò sapere.

gente di poca fede :mmmh: :D
il nome che ho trovato io è "banker's rounding", non ti piace? :roll:
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi Dylan666 » 19/01/04 19:24

Non è ke non mi piaccia, è solo che secondo me è la solita americanizzazione impropria di un termine che avrà sicuramente un nome più scientifico (poi magari mi sbaglio...). Comunque la spiegazione del nome è semplice: con questo metodo l'errore (vedi sopra) diminuisce di molto. La cosa si sarebbe potuta fare anche con i numeri dispari ma certo sono più difficili da gestire di quelli pari. È corretto anche dire che il metodo funzione sulla "distribuzione dell'errore". Al banchiere resta la certezza che con il suo metodo è "probabile" che ci guadagni, mentre con l'altro è certo che ci perda...
Avatar utente
Dylan666
Moderatore
 
Post: 39988
Iscritto il: 18/11/03 16:46

Postdi Dylan666 » 19/01/04 19:30

@ piercing
Naturalmente come tu stesso avrai capito il metodo banker's rounding e differente da quello ufficialmente (e legalmente) riconsciuto per il calcolo dell'euro e (in genere) di tutte le altre operazioni finanziarie
Ultima modifica di Dylan666 su 20/01/04 17:45, modificato 2 volte in totale.
Avatar utente
Dylan666
Moderatore
 
Post: 39988
Iscritto il: 18/11/03 16:46

Postdi pjfry » 19/01/04 19:33

Dylan666 ha scritto:Non è ke non mi piaccia, è solo che secondo me è la solita americanizzazione impropria di un termine che avrà sicuramente un nome più scientifico (poi magari mi sbaglio...). Comunque la spiegazione del nome è semplice: con questo metodo l'errore (vedi sopra) diminuisce di molto. La cosa si sarebbe potuta fare anche con i numeri dispari ma certo sono più difficili da gestire di quelli pari. È corretto anche dire che il metodo funzione sulla "distribuzione dell'errore". Al banchiere resta la certezza che con il suo metodo è "probabile" che ci guadagni, mentre con l'altro è certo che ci perda...

questa non l'ho capita... 'sto banchiere mica conterà solo le uscite :eeh:
semplicemente è un metodo che dovrebbe consentire di fare meno errori, in positivo o in negativo dipende da cosa calcoli credo, no?
quanto al nome scientifico, non lo sò, ma in statistica e economia ce ne sono parecchi di nomi del genere, per fortuna il latino lo lasciano alle scienze naturali :lol:
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi ezechiel2517 » 20/01/04 10:03

Si da il caso che statistica l'ho studiata all'uni e ho anche preso 30! (ok non era statistica "commerciale" ;) )
Come ho gia detto PJ ha ragione solo nel caso di numeri uniformemente distribuiti, con o senza esempi. ;)
ezechiel2517
Utente Senior
 
Post: 1598
Iscritto il: 05/04/02 20:21

Postdi feno » 20/01/04 11:14

cmq io rimango della mia idea che se il numero finisce con cinque si guarda la cifra dopo se non c'è vuol dire che è uno zero (1,5 = 1,50) quindi si abbassa.

1,5 = 1
Cià

F@no
feno
Utente Senior
 
Post: 268
Iscritto il: 29/05/02 08:36
Località: Somewhere in Italy

Postdi Dylan666 » 20/01/04 13:58

ezechiel2517 ha scritto:Si da il caso che statistica l'ho studiata all'uni e ho anche preso 30! (ok non era statistica "commerciale" ;) )
Come ho gia detto PJ ha ragione solo nel caso di numeri uniformemente distribuiti, con o senza esempi. ;)


E io che ho detto? È comunque innegabile (l'esempio lo dimostra) che dato che si ha il 50% delle possibilità che il numero a cui si approssimi sia maggiore e il 50% che sia minore alla fine le cose si bilanciano, e più è gande la lista di numeri che si usa per il calcolo più è probabile che l'approssimazione finale di tutti i numeri sia molto vicino al valore reale non approssimato (naturlamente si tende a infinito...)
Avatar utente
Dylan666
Moderatore
 
Post: 39988
Iscritto il: 18/11/03 16:46

Postdi Dylan666 » 20/01/04 14:39

feno ha scritto:cmq io rimango della mia idea che se il numero finisce con cinque si guarda la cifra dopo se non c'è vuol dire che è uno zero (1,5 = 1,50) quindi si abbassa.

1,5 = 1

@ feno:
Ti consiglio di andare a rivedere il libro delle superiori, perché sono sicuro che non dice quello che dici tu: innanzitutto il fatto che ci si voglia fermare a un certo numero per approssimare (per esempio che si abbia bisogno di un'approssimazione solo fino al secondo numero decimale) non vuol dire che le cifre dopo non esistano o siano pari a 0.

E comunque sia anche l'approssimazione che fai del numero 1,5 è sbagliata secondo le regole che vengono insegnate a scuola (dalle medie in poi) che sono le seguenti:

L'arrotondamento è per difetto, se l'ultima cifra che si considera dopo la virgola è da 0 a 4, per eccesso se tale cifra sia pari a 5 o superiore

Quindi 1,5 = 2
Avatar utente
Dylan666
Moderatore
 
Post: 39988
Iscritto il: 18/11/03 16:46

Postdi ezechiel2517 » 20/01/04 15:50

Dylan666 ha scritto:E io che ho detto?

Quanto io e pj avevamo gia detto e ribadito. L'esempietto della somma lo aveva gia fatto pj!!
ezechiel2517
Utente Senior
 
Post: 1598
Iscritto il: 05/04/02 20:21

Postdi Dylan666 » 20/01/04 15:58

Forse c'è un fraintendimento di motivazioni: io ho postato solo per far vedere praticamente (e forse in modo più ordinato dato che vi eravate impicciati nella somma della parte intera) come e quanto l'errore diminuisce rispetto l'approssimazione per eccesso. Inoltre volevo mostrare come tale procedimento sia infondo più diffuso di quanto si immagini, tanto da essere presente negli esercizi degli appunti universitari di un ateneo italiano.
That's all falk!
Avatar utente
Dylan666
Moderatore
 
Post: 39988
Iscritto il: 18/11/03 16:46

Postdi ezechiel2517 » 20/01/04 16:30

Forse c'è un fraintendimento di motivazioni:
io ho postato solo per far vedere praticamente (e forse in modo più ordinato dato che vi eravate impicciati nella somma della parte intera) come e quanto l'errore diminuisce rispetto l'approssimazione per eccesso.


PJ il 18 gennaio
PJ ha scritto:esempio:
1.15+1.25=1.4
arrotondo ad una cifra con il metodo 'ingegneristico' : 1.2+1.3=1.5
arrotondo ad una cifra con il metodo 'del banchiere' : 1.1+1.3=1.4

E' abbastanza pratico
Non ci sono interi su cui ci siamo impicciati

L'arrotondamento tradizionale, e' risaputo, che e' affetto da un bias. Come diceva pj:
PJ ha scritto:lo zero non dà errori, gli errori per i decimali da 1 a 4 bilanciano quelli per i decimali da 6 a 9... e il 5 fà casino se lo arrotondi sempre per eccesso, no? se invece lo arrotondi una volta su e una giù

quindi con l'arrotondamento tradizionale sommi sempre numeri MAGGIORI o UGUALI a quelli che sommi con il metodo del banchiere. Mi pare abbastanza ovvio che le due somme non portanno mai convergere ad un unico valore e che la loro differenza andra' ad aumentare con il crescere degli addendi!

Inoltre volevo mostrare come tale procedimento sia infondo più diffuso di quanto si immagini, tanto da essere presente negli esercizi degli appunti universitari di un ateneo italiano.

Il fatto che sia la funzione di default del software piu' usato nel mondo non sembrava abbastanza?
ezechiel2517
Utente Senior
 
Post: 1598
Iscritto il: 05/04/02 20:21

Postdi Dylan666 » 20/01/04 16:52

ezechiel2517 ha scritto:PJ il 18 gennaio
PJ ha scritto:esempio:
1.15+1.25=1.4
arrotondo ad una cifra con il metodo 'ingegneristico' : 1.2+1.3=1.5
arrotondo ad una cifra con il metodo 'del banchiere' : 1.1+1.3=1.4

E' abbastanza pratico
Non ci sono interi su cui ci siamo impicciati
[...]
Il fatto che sia la funzione di default del software piu' usato nel mondo non sembrava abbastanza?


@ ezechiel2517:
Non ho capito cosa tu abbia contro il mio post, comunque 1.2+1.3=2.5 e 1.1+1.3=2.4 (errore simile nel post di pj del 17/01/04 14:59 e poco prima correzione "invertita" di plettro... se non è confusione questa!).
Il fatto che sia impostato di default evidentemente non è una spiegazione convincente nemmeno per piercing che appunto se ne chiedeva il perché, insieme al perché non sia lo stesso di default anche in altri prodotti della stessa M$ (senza contare che come ho già detto il metodo "classico" più diffuso, e non questo, è quello legalmente riconosciuto per operazioni comuni come quelle di arrotondamento "finanziario", vedi la direttiva europea per il calcolo della converisone all'euro).

Quanto ho scritto non credo sia una semplice ripetizione dei post di pjfry e anche lo fosse mi sarebbe leggittimo esprimere la mia condivisione per il parere che ha espresso (infatti ha apprezzato).
Qualora quello che ho scritto non avesse aggiunto assolutamente nulla al dibattito in corso allo stesso modo nulla ha tolto: repetita iuvant
Ultima modifica di Dylan666 su 20/01/04 23:40, modificato 1 volte in totale.
Avatar utente
Dylan666
Moderatore
 
Post: 39988
Iscritto il: 18/11/03 16:46

Postdi Dylan666 » 20/01/04 18:20

Giusto per aggiungere la nota storica "mancante" posso dirvi che il metodo di cui discutiamo è stato inventato dal famoso matematico Carl Friedrich Gauss (Brunswick 1777 - Gottinga 1855).
La sua tecnica oltre che "Banker's rounding" è detta anche "Gaussian rounding", per distinguerla dalla più comune "standard rounding".
In tedesco è detta "mathematische Rundung".

È stata adottata solo dal VB6 in poi.
Per i riferimenti informatici:
http://www.xbeat.net/vbspeed/c_Round.htm
Avatar utente
Dylan666
Moderatore
 
Post: 39988
Iscritto il: 18/11/03 16:46

Postdi pjfry » 20/01/04 23:00

ovvio che non sò fare 1+1, io ho preso solo 26 in statistica :lol:
ah quindi l'ha inventata gauss? quello della gaussiana? foooorteeeee :!:
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Precedente

Torna a Software Windows


Topic correlati a "? Algoritmo della funzione Round()":


Chi c’è in linea

Visitano il forum: Nessuno e 70 ospiti