Just nu i M3-nätverket
Gå till innehåll

Problem att förstå funktionen XOR


Isaklund

Rekommendera Poster

Sitter och nördar ner mig i nya kalkylbladsfunktioner i Excel 2013 (preview).

 

Just nu har jag fastnat på funktionen XOR

 

Returns a logical Exclusive Or of all arguments.

 

XOR(logical1, [logical2],…)

 

Är det någon som kan förklara varför resultatet av XOR(TRUE;TRUE;TRUE;TRUE) blir TRUE

 

Men resultatet av XOR(TRUE;TRUE;TRUE) blir FALSE?

=XOR(TRUE;TRUE;TRUE;TRUE;TRUE) blir också det FALSE

 

Jag tycker att alla dessa borde ge resultatet FALSE. TRUE skall det ju bli bara när det finns ett unikt (t.ex. TRUE;FALSE; FALSE; FALSE)

 

mvh

Länk till kommentar
Dela på andra webbplatser

Xor brukar väll fungera så att man jämför två värden, true eller false, ett eller noll och baserat på värdena så får man tillbaka antagligen true eller false, ett eller noll.

 

I dina fall så tror jag det blir så att när du skickar in fyra true, så utvärderas det så här.

  1. true och true = false
  2. false och true = true
  3. true och true = false
  4. false och true = true

 

Anledningen är att funktionen tar två värden, jämför dessa och sedan jämför resultatet med nästa värde i funktionen. Det är därför när du skickar in ett jämnt antal värden till funktionen som det blir true, men när du skickar in ett ojämnt värde så blir det false.

  1. true och true = false
  2. false och true = true
  3. true och true = false
  4. false och true = true
  5. true och true = false

 

Jag ska inte svära på att det verkligen fungerar så, men det verkade rimligt.

Länk till kommentar
Dela på andra webbplatser

Låter troligt, men förstår inte riktigt.

Försöker dessutom hitta en beslutsregel som tydligt talar om vad XOR gör.

 

Hjälptexten i Excel är inte direkt tydlig i mitt tycke ”Returns a logical Exclusive Or of all arguments

 

XOR har argumentet logical1, logical2 och enligt hjälpen skall man kunna ange upp till 254 ”logical conditions”. I min preview så kan jag dock inte skriva in mer än fem…

 

Hur som helst, kan kanske följande beslutsregel stämma:

 

Om antal TRUE är udda ges svaret TRUE, annars ges svaret FALSE

 

Se bilden

 

Det känns dock inte som ett matematiskt korrekt XOR-argument… Känns som något fattas här…

post-47359-0-14955600-1344501914_thumb.gif

Länk till kommentar
Dela på andra webbplatser

Läst (och förstått)

http://en.wikipedia....ki/Exclusive_or

?

exempelvis.

eller

http://en.wikipedia.org/wiki/XOR_gate

?

Denna tabell säger nog det mesta

 

A B Xor

0 0 0

0 1 1

1 0 1

1 1 0

 

dvs den jämför parvis.

I din tabell är det bara att följa den mallen, jämföra dem parvis.

Testa ställ upp ett test med SANT FALSKT SANT FALSK.

Svaret borde bli FALSKT.

Länk till kommentar
Dela på andra webbplatser

Med risk för att jag blir dumförklarad på riktigt… Jag tror jag börjar förstå…

 

Och om jag då tar XOR(TRUE;TRUE;TRUE)

 

Vad är det som gör att det blir TRUE?

 

Jag gör ett försök:

 

Steg 1: TRUE – TRUE = FALSE

Steg 2: FALSE – TRUE = TRUE

Dvs par 1 blir FALSE, par 2 blir TRUE, dessa tillsammans blir därför TRUE.

 

Och om jag däremot tar XOR(TRUE;TRUE;FALSE)

Steg 1: TRUE – TRUE = FALSE

Steg 2: FALSE – FALSE = FALSE

Dvs par 1 blir FALSE, par 2 blir FALSE, dessa tillsammans blir därför FALSE.

 

En fråga som återstår är då hur man skulle kunna beskriva detta med någon beslutsregel. Men det kanske inte går att göra det bättre än med ”Returns a logical Exclusive Or of all arguments”

Länk till kommentar
Dela på andra webbplatser

1 1 => 0

1 (?) = > 1

 

0 1 => 1

 

1 = sant

0 = falskt

(?) = falskt

det vill säga som standard har tomma värden värdet noll och noll är falskt.

Länk till kommentar
Dela på andra webbplatser

1 1 => 0

1 (?) = > 1

 

0 1 => 1

 

1 = sant

0 = falskt

(?) = falskt

det vill säga som standard har tomma värden värdet noll och noll är falskt.

 

klonk, nu trillade den ner :blush:

tack...

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...