handdator

Visa fullständig version : Dela med noll


slappe
2006-12-07, 08:48
http://www.bbc.co.uk/berkshire/content/articles/2006/12/06/divide_zero_feature.shtml

aliquis
2006-12-07, 13:01
Oj vilken nyhet...

Java och säkert flera andra språk har ju representerat det genom att sätta en NaN = Not a Number-flagga som man sedan kan kolla efter och hantera på vad det nu är lämpligt att hantera det hela på för sätt.

Trance
2006-12-07, 13:07
Oj vilken nyhet...

Java och säkert flera andra språk har ju representerat det genom att sätta en NaN = Not a Number-flagga som man sedan kan kolla efter och hantera på vad det nu är lämpligt att hantera det hela på för sätt.

Det var matematik och inte programmering. Sedan angående Java så har jag ju inte någn koll längre men den kastar väl bara ett divide by zero exception?

aliquis
2006-12-07, 13:08
Något snille skriver att hans telefon svarar med "0" när han dividerar med 0, det är ju rätt galet, den borde väl snarare svara med oändligt/negativ oändlighet isf? Men även det är ju fel svar egentligen.

Många verkar förvånade vad gäller att 1/0= .. och 2/0 = .. osv blir samma sak eftersom man inte kan gå baklänges och säga vad uttrycket var, men det är ju inte så konstigt eller nödvändigt, huvudsaken är ju att man har koll på att svaret är felaktigt/inte finns och hanterar det.

aliquis
2006-12-07, 13:13
Det var matematik och inte programmering. Sedan angående Java så har jag ju inte någn koll längre men den kastar väl bara ett divide by zero exception?Det löser ju ingenting i matematiken.

Du kan ju fortfarande inte räkna något som:

1/0 * 2/0 eller så, får du cpnolla i kvadrat som svar då? Och vad betyder det? Ingenting.

Dessutom var det ju en klass för dataingenjörer eller något?
Och exemplen som gavs var pacemakers och flygplan, men som sagt, det viktiga i exempelvis ett flygplan som beräknar något säg utifrån höjden över havet som det befinner sig på och det skulle kunna gå fel vid havsnivån är ju att man vet att just där gick det galet och hanterar på ett korrekt fall, som i det här fallet är rätt lätt att räkna ut eftersom man kommer veta om att man befann sig just på havsnivån.

Men om det är säg en grafritade miniräknare som skall rita grafer och får rita grafen 1/x där x går från -10 till 10 så är ju det viktiga bara att den inte försöker sätta ut någon prick för 1/0.

Jag har ingen jättekoll på hur det var i java heller, men jag tror att den kastar en exception om du försöker använda talet, typ ber någon mata in två tal och sedan försöker dividera dem och det andra talet råkar vara 0, å andra sidan är väl en exception någon form av flagga också. Du kan väl även testa typ if(tal.isNaN) tror jag.

Enda det löser är ju datorproblem hur som helst, det går ju fortfarande inte att räkna med det, eftersom det inte finns något tal som matchar, enda du kan hålla koll på är ju att det just inte är ett tal.. vad som nu är vettigt med det.

Empe
2006-12-07, 13:25
Synd att jag är så kass på engelska. och att det syns så dåligt vad han gör när man inte fattar vad han säger. Skulle vilja ha det där förklarat på svenska alt uppritat så att man ser ordentligt.

Trance
2006-12-07, 13:25
Det löser ju ingenting i matematiken.

Du kan ju fortfarande inte räkna något som:

1/0 * 2/0 eller så, får du cpnolla i kvadrat som svar då? Och vad betyder det? Ingenting.

Dessutom var det ju en klass för dataingenjörer eller något?
Och exemplen som gavs var pacemakers och flygplan, men som sagt, det viktiga i exempelvis ett flygplan som beräknar något säg utifrån höjden över havet som det befinner sig på och det skulle kunna gå fel vid havsnivån är ju att man vet att just där gick det galet och hanterar på ett korrekt fall, som i det här fallet är rätt lätt att räkna ut eftersom man kommer veta om att man befann sig just på havsnivån.

Men om det är säg en grafritade miniräknare som skall rita grafer och får rita grafen 1/x där x går från -10 till 10 så är ju det viktiga bara att den inte försöker sätta ut någon prick för 1/0.

Jag har ingen jättekoll på hur det var i java heller, men jag tror att den kastar en exception om du försöker använda talet, typ ber någon mata in två tal och sedan försöker dividera dem och det andra talet råkar vara 0, å andra sidan är väl en exception någon form av flagga också. Du kan väl även testa typ if(tal.isNaN) tror jag.

Enda det löser är ju datorproblem hur som helst, det går ju fortfarande inte att räkna med det, eftersom det inte finns något tal som matchar, enda du kan hålla koll på är ju att det just inte är ett tal.. vad som nu är vettigt med det.

Det verkar vara typ en mellanstadieklass. Men det är klart det inte löser något uppenbart. Men om det funkar som i C#:

int i= 3;
try
{

int n= 0;
i=i/n;
}
catch(Exception e)
{
Console.WriteLine(e);
Console.WriteLine(i);
}

Så kommer e att vara ett DivideByZero exception och i kommer fortfarande vara 3 eftersom det aldrig blir någon tilldelning.

Scratch89
2006-12-07, 13:32
1/0 * 2/0 eller så, får du cpnolla i kvadrat som svar då? Och vad betyder det? Ingenting.

Det kan du väl iofs skriva om som 0/1*0/2, eller är jag helt fel ute ?

Dumleman
2006-12-07, 13:59
Nollan är ett jäkla otyg. Vem kom på den urbotat korkade saken egentligen? Hört att den kommer från Indien.

jwzrd
2006-12-07, 14:03
Det var matematik och inte programmering. Sedan angående Java så har jag ju inte någn koll längre men den kastar väl bara ett divide by zero exception?

Låte inte kunskapen hindra ett svar min gode Trance.

jwzrd
2006-12-07, 14:05
Det kan du väl iofs skriva om som 0/1*0/2, eller är jag helt fel ute ?

Ja. Du är helt fel ute.

Trance
2006-12-07, 14:18
Låte inte kunskapen hindra ett svar min gode Trance.

Jag förstår inte, var det rätt eller fel? Tvinga mig inte att googla.

mistermr
2006-12-07, 14:24
Nollan är ett jäkla otyg. Vem kom på den urbotat korkade saken egentligen? Hört att den kommer från Indien.

Inte indien. Nollan som var en såpass stor händelse då den upptäcktes vilket medförde att alla nummer fick dess namn dvs siffror (av siffr som betyder noll på arabiska) motsvarar tomma mängden och den upptäcktes av araberna liksom våra nummertecken som används idag.

mvh

Trance
2006-12-07, 14:28
Aha, nu lärde jag mig något nytt idag.

int i = 3;
try
{
int n = 0;
i=i/n;
Console.WriteLine(i);
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}

Kastar ett exception

float i = 3;
try
{
float n = 0;
i=i/n;
Console.WriteLine(i);
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}

Float (och double) kastar inget exception utan skriver ut INF eftersom de blir representerade som infinity. Det var det värsta.

mistermr
2006-12-07, 14:30
Vad som helst delat med noll blir ju oändligheten eller "infinity".

mvh

Trance
2006-12-07, 14:32
Vad som helst delat med noll blir ju oändligheten eller "infinity".

mvh

Detta handlade dock hur Java/C# hanterade det, och det var olika beroende på vilken datatyp man använde.

mistermr
2006-12-07, 14:32
Detta handlade dock hur Java/C# hanterade det, och det var olika beroende på vilken datatyp man använde.

Okej, jag trodde att upptäckten var x/0=oändligheten.

mvh

Trance
2006-12-07, 14:34
Okej, jag trodde att upptäckten var x/0=oändligheten.

mvh

Ah,ok. Nej jag var bara lite off topic som vanligt. :)

Liten Men Fet
2006-12-07, 14:38
Vad som helst delat med noll blir ju oändligheten eller "infinity".

mvh

Nej, om det är ett negativt tal så blir det minus oändligheten. Jag förstår inte riktigt vad det nya eller fantastiska är? Är det inte bara att lära sig om gränsvärden så kan man hantera sånt här?

tusenkonstnar
2006-12-07, 16:36
Okej, jag trodde att upptäckten var x/0=oändligheten.

mvh

Vet att påpekandet kan tyckas lite petitessmässigt men faktum är att x/0 faktiskt är ODEFINIERAT.
Om man däremot har x/y och sedan låter y gå mot noll så går x/y mot oändligheten om exempelvis x är konstant.

mistermr
2006-12-07, 19:24
Båda anmärkningarna ovan är korrekta. Får vara mera precis nästa gång.

mvh

hasse36
2006-12-07, 19:54
1/0 * 2/0 eller så, får du cpnolla i kvadrat som svar då? Och vad betyder det? Ingenting.1/0 * 2/0 = 2/0 = 2 * (1/0)
1/0 = +oo (positiv oändlighet)
2 * (1/0) = 2 * +oo = +oo