|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
|
ma com'è possibile!??!?!
scusate tanto per la banalità della discussione, ma l'operatore di modulo, che in java è indicato con %, non dovrebbe restituire il resto della divisione tra 2 numeri?
dato che la risposta è sì, allora perchè scrivendo in java queste istruzioni il valore che viene assegnato alla variabile g è -1???? int g = -1; g = g % 3; non dovrei avere 2??????? non riesco proprio a ciper perchè mi assegni -1.....
__________________
![]() |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Jul 2003
Messaggi: 209
|
Perchè -1 = 0*3 + (-1) e non (-1)*3+2
__________________
------------------------------------- Fletto i muscoli e sono nel vuoto ------------------------------------ |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Apr 2005
Messaggi: 224
|
ora sparo:
-1 diviso 3 è 0 col resto di -1 ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
|
scusa ma allora cosa devo fare per ottenere correttamente l'operazione di modulo??
cioè l'operazione mi da un risultato positivo solo se il numero a sinistra dell'operazione è positivo?
__________________
![]() Ultima modifica di akyra : 09-11-2005 alle 18:07. |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: May 2005
Messaggi: 340
|
Quote:
|
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
|
vabbè ci posso mettere un "if" che controlla se il valore della variabile è negativo, e se lo è esegue (3 + g) in modo tale da ottenere quello che mi serve...
mi sembra un po' strano però in quanto, ad es., sulla calcolatrice se faccio il modulo di un numero negativo mi da come risultato il valore positivo, che non a caso appartiene alla stessa classe di equivalenza del risultato negativo, come mai per il java questo non funziona??
__________________
![]() |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: May 2005
Messaggi: 340
|
non vorrei dire un caxxata... ma forse non è per il fatto che non sia Float? ... forse con INT non gli piace i numeri sotto lo zero ;D
|
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Jul 2003
Messaggi: 209
|
In effetti (vedi
Codice HTML:
http://functions.wolfram.com/IntegerFunctions/Mod/02/ n%m deve avere lo stesso segno di m (se non è zero). Da qui Codice HTML:
http://mindprod.com/jgloss/modulus.html
__________________
------------------------------------- Fletto i muscoli e sono nel vuoto ------------------------------------ |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Nov 2005
Città: Bordeaux - France
Messaggi: 364
|
Non può che essere un baco, dato che, per definizione, il resto di una divisione tra a e b (con a e b in Z, b>0) è il naturale c: b>c>=0. Di conseguenza, -1 diviso 3 è -1 con resto 2.
__________________
- fuocofatuo - |
![]() |
![]() |
![]() |
#10 | |
Member
Iscritto dal: Apr 2005
Messaggi: 224
|
Quote:
scusa ma cosa c'entra la funzione modulo con l'operatore modulo (cioè resto) ? ![]() |
|
![]() |
![]() |
![]() |
#11 | |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
![]() ma com'è implementato in Java l'operatore %?? non si usa la ALU dell'architettura ospite? ![]() l'errore riguarda anche il C++ e/o l'assembly? |
|
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Nov 2005
Città: Bordeaux - France
Messaggi: 364
|
Ok, hai ragione. Ho decisamente sbagliato a chiamarlo baco, essendo preso un po' dalla fretta...
Ciò che intendevo dire è che se l'operatore intende fornire il resto di una divisione generica tra interi, il risultato proposto è matematicamente sbagliato. Non c'è verso, e il fatto che me la fornisca l'ALU anzichè ne so io chi, non cambia certo le cose.
__________________
- fuocofatuo - |
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
|
Quote:
[a] = {x | x modulo 3 = a, con x che appartiene agli Interi} giusto? di conseguenza le classi di equivalenza modulo 3 saranno: [0], [1], [2]. Non importa quale rappresentate prenda di ognuna di queste classi, in quanto ad esempio [2]=[8] ,oppure [-1]=[2]. Di conseguenza il risultato -1 è corretto, ma dato che [-1]=[2] allora il rusultato che dovrei avere è 2. Quindi se è ragionevole che l'operazione di modulo mi restituisca come risultato la classe di appartenenza (positiva) del resto, come mai in Java questo non è scontato, invece sulla calcolatrice sì?
__________________
![]() |
|
![]() |
![]() |
![]() |
#14 | |
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
Quote:
![]() ![]() 'iao |
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
|
ma chi ha parlato di funzioni?
sto dicendo che l'operatore di modulo sulla calcolatrice mi da sempre risultato positivo, indipendentemente se il dividendo sia positivo o negativo, invece in Java mi da un numero negativo se il dividendo è anch'esso negativo...quando invece sarebbe ragionevole che mi desse un numero positivo, per i motivi che ho detto sopra...
__________________
![]() |
![]() |
![]() |
![]() |
#16 | ||
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
Quote:
Quote:
'iao |
||
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
ma il resto che ti restituisce, non considerando la negatività, è corretto?
se così fosse basterebbe fare il... ...modulo del modulo ![]() 'iao |
![]() |
![]() |
![]() |
#18 |
Member
Iscritto dal: Apr 2005
Messaggi: 224
|
Per modulo si può intendere la funzione "valore assoluto", da quello che avevi scritto sembrava tu stessi parlando di modulo come valore assoluto e non di modulo come resto di una divisione. (quando parlavi dei conti con la calcolatrice).
...ovviamente la funzione modulo (valore assoluto) restituisce sempre un valore positivo... |
![]() |
![]() |
![]() |
#19 | |
Senior Member
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4741
|
Quote:
A / B = A* (1/B) = risultato risultato = segno * valore , con valore = parte_intera+resto e segno = + se A e B hanno stesso segno, - in caso di segno diverso, come per qualunque moltiplicazione è algebra eh.... ![]()
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate
Ultima modifica di jappilas : 10-11-2005 alle 14:20. |
|
![]() |
![]() |
![]() |
#20 | |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
|
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:01.