Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Abbiamo provato per voi il nuovo DLC lanciato a sorpresa da Blizzard per Diablo II: Resurrected e quella che segue è una disamina dei nuovi contenuti che abbiamo avuto modo di sperimentare nel corso delle nostre sessioni di gioco, con particolare riguardo per la nuova classe dello Stregone
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Siamo tornati nel parco tecnologico di Trieste per il kick-off del programma che mette a disposizione di cinque startup le infrastrutture di ricerca, dal sincrotrone Elettra ai laboratori di genomica e HPC. Roberto Pillon racconta il modello e la visione
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16-ak0001nl combina RTX 5080 Laptop e Ryzen AI 9 HX 375 in un desktop replacement potente e ben raffreddato, con display 240 Hz e dotazione completa. Autonomia limitata e calibrazione non perfetta frenano l'entusiasmo, ma a 2.609 euro è tra le proposte più interessanti della categoria.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-04-2007, 19:18   #1
peter2
Senior Member
 
Iscritto dal: May 2000
Città: Roma
Messaggi: 1612
[generico] multiplo

indipendentemente dal linguaggio che si usa, come fate a capire se un numero reale x è multiplo di un altro reale y??

usando la funzione mod(x,y) ( qui )
nel caso in cui siano effettivamente multipli, mod(x,y) viene 0.9999991 con tanti nove in funzione della precisione che si sta usando.

come fare?
__________________
peter
peter2 è offline   Rispondi citando il messaggio o parte di esso
Old 11-04-2007, 20:00   #2
Psylo
Junior Member
 
L'Avatar di Psylo
 
Iscritto dal: Aug 2006
Città: Pescara
Messaggi: 62
conosco solo php (sono agli inizi) e per fare tale verifica uso il "modulo" (%) che ritorna il resto della divisione tra due numeri...quindi se x%y==0 (cioè la divisione tra x e y da' come resto 0..) vuol dire che x è un multiplo esatto di y.
__________________
"I giganti sembrano tali solo a coloro che vivono in ginocchio.."
Psylo è offline   Rispondi citando il messaggio o parte di esso
Old 11-04-2007, 23:26   #3
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
Attenzione che stiamo parlando di numeri reali...quindi non si fanno mai confronti fra numeri reali (anche lo zero è un numero reale) senza assegnare un certo margine di incertezza...

Ad esempio dati a e b:

c = a * b
c = c * (b - 1)
c = c / b
c = c / (b - 1)

E' molto probabile che a == c ritorni falso...questo è dovuto al fatto che i floating point non sono chiaramente infiniti come i numeri reali e di conseguenza ci possono essere errori di rappresentazione dovuti appunto alla granularità dell'inseme dei floating point.
Ecco perché controllare che:

Mod(a, b) == 0 per affermare che a è multiplo di b è molto rischioso.
E non solo perché Mod(a,b) potrebbe essere 0.000000001, ma anche perché potrebbe essere (b - 0.000000001)
Quindi prima di tutto dobbiamo assegnare un certo margine di incertezza...che so, 1 su 100000.
Quindi per possiamo affermare con un certa sicurezza che a è multiplo di b:

m = mod(a,b)
e = 0.00001 * b <---- errore accettabile dovuto alla rappresentazione

se (m - e) < 0 oppure (m + e) > b allora a è multiplo di b
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 11-04-2007, 23:49   #4
peter2
Senior Member
 
Iscritto dal: May 2000
Città: Roma
Messaggi: 1612
Quote:
Originariamente inviato da cionci Guarda i messaggi
Attenzione che stiamo parlando di numeri reali...quindi non si fanno mai confronti fra numeri reali (anche lo zero è un numero reale) senza assegnare un certo margine di incertezza...

Ad esempio dati a e b:

c = a * b
c = c * (b - 1)
c = c / b
c = c / (b - 1)

E' molto probabile che a == c ritorni falso...questo è dovuto al fatto che i floating point non sono chiaramente infiniti come i numeri reali e di conseguenza ci possono essere errori di rappresentazione dovuti appunto alla granularità dell'inseme dei floating point.
Ecco perché controllare che:

Mod(a, b) == 0 per affermare che a è multiplo di b è molto rischioso.
E non solo perché Mod(a,b) potrebbe essere 0.000000001, ma anche perché potrebbe essere (b - 0.000000001)
Quindi prima di tutto dobbiamo assegnare un certo margine di incertezza...che so, 1 su 100000.
Quindi per possiamo affermare con un certa sicurezza che a è multiplo di b:

m = mod(a,b)
e = 0.00001 * b <---- errore accettabile dovuto alla rappresentazione

se (m - e) < 0 oppure (m + e) > b allora a è multiplo di b
esatto, proprio quello che volevo fare io, solo che volevo legare l'incertezza al tipo di rappresentazione fp (4 o 8 bit) e quindi alla precisione, in modo che valga universalmente.

in realtà temo che se a è multiplo di b la distanza di mod(a,b) da 0 (cioè il suo valore) dipenda da a/b stesso, cioè da quanto grande è a rispetto a b.

basta vedere che mod(a,b)=a-b*int(a/b)
__________________
peter
peter2 è offline   Rispondi citando il messaggio o parte di esso
Old 12-04-2007, 14:00   #5
Psylo
Junior Member
 
L'Avatar di Psylo
 
Iscritto dal: Aug 2006
Città: Pescara
Messaggi: 62
Quote:
Originariamente inviato da peter2 Guarda i messaggi
esatto, proprio quello che volevo fare io, solo che volevo legare l'incertezza al tipo di rappresentazione fp (4 o 8 bit) e quindi alla precisione, in modo che valga universalmente.

in realtà temo che se a è multiplo di b la distanza di mod(a,b) da 0 (cioè il suo valore) dipenda da a/b stesso, cioè da quanto grande è a rispetto a b.

basta vedere che mod(a,b)=a-b*int(a/b)
minchia che figura...
...e io che pensavo che eri un niubbo ignorante come me...
...mi defilo...
__________________
"I giganti sembrano tali solo a coloro che vivono in ginocchio.."

Ultima modifica di Psylo : 12-04-2007 alle 14:03.
Psylo è offline   Rispondi citando il messaggio o parte di esso
Old 12-04-2007, 15:23   #6
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
Quote:
Originariamente inviato da peter2 Guarda i messaggi
in realtà temo che se a è multiplo di b la distanza di mod(a,b) da 0 (cioè il suo valore) dipenda da a/b stesso, cioè da quanto grande è a rispetto a b.
Non credo...anche perché a e b possono avere avuto anche una "vita" completamente diversa ed aver subito varie operazioni con un accumulo di errore anche notevole per una e magari nullo per l'altra...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 12-04-2007, 15:45   #7
peter2
Senior Member
 
Iscritto dal: May 2000
Città: Roma
Messaggi: 1612
Quote:
Originariamente inviato da cionci Guarda i messaggi
Non credo...anche perché a e b possono avere avuto anche una "vita" completamente diversa ed aver subito varie operazioni con un accumulo di errore anche notevole per una e magari nullo per l'altra...
no ho capito che cosa c'entra l'accumulazione dell'errore su a (b) sul fatto che possa essere multiplo o meno di b (a)

in ogni caso non ne sono uscito....
mi date un algoritmo che, dati (a,b) reali, riesca a capire se a è multiplo di b, in qualsiasi precisione si stia lavorando

(a,b)=

(0.0001,0.1) (multiplo)
(0.001,0.1) (multiplo)
(5.,4.) (NON multiplo)
(5.,3.) (NON multiplo)
__________________
peter
peter2 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Diablo II Resurrected: il nuovo DLC Reign of the Warlock Diablo II Resurrected: il nuovo DLC Reign of the...
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup Deep Tech Revolution: così Area Science P...
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo HP OMEN MAX 16 con RTX 5080: potenza da desktop ...
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta Recensione Google Pixel 10a, si migliora poco ma...
6G, da rete che trasporta dati a rete intelligente: Qualcomm accelera al MWC 2026 6G, da rete che trasporta dati a rete intelligen...
Amazon, -20% extra su migliaia di prodot...
Firefox per Windows 7 sarà suppor...
La nuova Xiaomi SU7 è pronta: nuo...
Gli agenti IA di Google entrano in servi...
Sconti sulle low cost: 2 scope elettrich...
DDR5 oltre i 10.000 MT/s: ecco le schede...
Questi elettrodomestici vanno a ruba su ...
Il trailer di lancio di Crimson Desert m...
Auto elettriche più economiche? I...
Le 10 offerte di Primavera Amazon su cui...
Amazon svende i robot aspirapolvere: Dre...
L'ex capo di Windows ha elogiato il MacB...
Se manca questo gas, le fabbriche di chi...
NVIDIA celebra 25 anni di GeForce 3: per...
Leapmotor B10: arrivano Android Auto e A...
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: 09:39.


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