/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Odd number
Fra : Dennis Olesen


Dato : 14-09-04 20:22

Er det den rigtig måde at teste om et tal er ulige? Findes der en anden og
bedre måde ?

if (Number % 2 == 0 )


MVH
Dennis



 
 
Kristian Thy (14-09-2004)
Kommentar
Fra : Kristian Thy


Dato : 14-09-04 20:32

Dennis Olesen uttered:

> Er det den rigtig måde at teste om et tal er ulige? Findes der en anden og
> bedre måde ?
>
> if (Number % 2 == 0 )

Ovenstående er den statsautoriserede og helt igennem korrekte måde at
teste om et tal er ulige.

\\kristian
--
http://lpf.ai.mit.edu/Patents/knuth-to-pto.txt
http://home.att.net/~jbcole/humor/Microsoft_patents.htm

Dennis Olesen (14-09-2004)
Kommentar
Fra : Dennis Olesen


Dato : 14-09-04 20:44

Tak for det hurtige svar

MVH
Dennis Olesen



Niels Dybdahl (15-09-2004)
Kommentar
Fra : Niels Dybdahl


Dato : 15-09-04 09:00

> > Er det den rigtig måde at teste om et tal er ulige? Findes der en anden
og
> > bedre måde ?
> >
> > if (Number % 2 == 0 )
>
> Ovenstående er den statsautoriserede og helt igennem korrekte måde at
> teste om et tal er ulige.

Forudsat at Number er et heltal.

Niels Dybdahl



Kristian Thy (15-09-2004)
Kommentar
Fra : Kristian Thy


Dato : 15-09-04 09:05

Niels Dybdahl uttered:
>> > if (Number % 2 == 0 )
>>
>> Ovenstående er den statsautoriserede og helt igennem korrekte måde at
>> teste om et tal er ulige.
>
> Forudsat at Number er et heltal.

Sidst jeg tjekkede var lige/ulige kun defineret for heltal, så det er
vel underforstået?

\\kristian
--
http://lpf.ai.mit.edu/Patents/knuth-to-pto.txt
http://home.att.net/~jbcole/humor/Microsoft_patents.htm

Niels Dybdahl (15-09-2004)
Kommentar
Fra : Niels Dybdahl


Dato : 15-09-04 13:34

> >> > if (Number % 2 == 0 )
> >>
> >> Ovenstående er den statsautoriserede og helt igennem korrekte måde at
> >> teste om et tal er ulige.
> >
> > Forudsat at Number er et heltal.
>
> Sidst jeg tjekkede var lige/ulige kun defineret for heltal, så det er
> vel underforstået?

Netop derfor. Man kan sagtens putte en double ind i overstående og få at
vide at 8.5 er lige. Men det giver ikke meget mening.

Niels Dybdahl



Kristian Thy (15-09-2004)
Kommentar
Fra : Kristian Thy


Dato : 15-09-04 13:40

Niels Dybdahl uttered:
> Netop derfor. Man kan sagtens putte en double ind i overstående og få at
> vide at 8.5 er lige. Men det giver ikke meget mening.

Du vil faktisk få at vide at 8.5 er ulige.

</pedant>

\\kristian
--
http://lpf.ai.mit.edu/Patents/knuth-to-pto.txt
http://home.att.net/~jbcole/humor/Microsoft_patents.htm

Soren Kuula (16-09-2004)
Kommentar
Fra : Soren Kuula


Dato : 16-09-04 23:13

Hejsa,

Kristian Thy wrote:
> Dennis Olesen uttered:
>>Er det den rigtig måde at teste om et tal er ulige? Findes der en anden og
>>bedre måde ?
>>
>>if (Number % 2 == 0 )

JA, der findes en anden måde:

if ((number & 1) == 0)

Den er i hvert fald ikke langsommere end den første, og måske hurtigere
(fordi processoren ikke skal ud i at lave en division, men blot en AND,
som kan klares på konstant, meget kort tid). Prøv evt. at benchmark og
se om det er noget der rykker.

Men den første metode er mere generel; den kan tjekke om alle mulige
andre tal end 2 går op i Number. Min virker kun med 2, 4, 8, ....

MVH
Søren

kgc (17-09-2004)
Kommentar
Fra : kgc


Dato : 17-09-04 08:38

Dennis Olesen wrote:

> Er det den rigtig måde at teste om et tal er ulige? Findes der en anden og
> bedre måde ?
>
> if (Number % 2 == 0 )

Er 8 ulige?
   8 % 2 == 0 -> true

Den rigtige måde at teste om et tal er _ulige_ må være:
if (Number % 2 == 1)
eller:
if (!(Number % 2 == 0))
eller
if (Number % 2 != 0)

Idet % er resten ved heltalsdivision, er definitionen på "x går op i y"
at "y % x == 0" og definitionen på "y lige" er "2 går op i y". Eller
tager jeg fejl?

Mvh. Kasper

--
Besøg mig på nettet: http://www.kaspershjemmeside.dk

Kristian Thy (17-09-2004)
Kommentar
Fra : Kristian Thy


Dato : 17-09-04 14:53

kgc uttered:
> Idet % er resten ved heltalsdivision, er definitionen på "x går op i y"
> at "y % x == 0" og definitionen på "y lige" er "2 går op i y". Eller
> tager jeg fejl?

Du har fuldstændig ret. Jeg læser bare ikke folks indlæg før jeg svarer
på dem

\\kristian
--
http://lpf.ai.mit.edu/Patents/knuth-to-pto.txt
http://home.att.net/~jbcole/humor/Microsoft_patents.htm

Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409079
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste