28 svar
198 visningar
destiny99 behöver inte mer hjälp
destiny99 8136
Postad: 24 okt 2024 13:13 Redigerad: 24 okt 2024 13:14

Boolean fråga

Hej!

jag pluggar till ks i grundläggande programmering och stötte på denna fråga som jag inte vet hur man skall börja. 

Calle_K 2329
Postad: 24 okt 2024 13:24 Redigerad: 24 okt 2024 13:24

För att a and b = True måste a=True och b=True.

För att a or b = True  måste a=True och/eller b=True.

rapidos Online 1733 – Livehjälpare
Postad: 24 okt 2024 13:49

Alla parenteser måste vara sanna samtidigt eftersom det är and emellan dem. Sedan finns det ett antal olika fall.

destiny99 8136
Postad: 24 okt 2024 15:17 Redigerad: 24 okt 2024 15:18
Calle_K skrev:

För att a and b = True måste a=True och b=True.

För att a or b = True  måste a=True och/eller b=True.

Pratar du om de i parantesen? Jag tänker a or b är true och sen or not c har vi också. Så den paretensen blir true False? 

Laguna Online 30746
Postad: 24 okt 2024 15:18

Nej, alltid. Det är vad 'or' och 'and' betyder.

destiny99 8136
Postad: 24 okt 2024 15:20 Redigerad: 24 okt 2024 15:21
Laguna skrev:

Nej, alltid. Det är vad 'or' och 'and' betyder.

Ja. Så första paretesen är sant? 

Laguna Online 30746
Postad: 24 okt 2024 15:25

Det beror ju på vad a, b och c har för värden.

destiny99 8136
Postad: 24 okt 2024 15:29
Laguna skrev:

Det beror ju på vad a, b och c har för värden.

De har inte gett oss några värden och jag vet inte hur man ska tänka bara av att se på parenteserna.

Calle_K 2329
Postad: 24 okt 2024 15:31

Börja utifrån. Du har 3 parenteser och kommandot and mellan dessa. Därmed måste alla parenteser vara sanna för att resultatet ska vara sant.

Nu kan du behandla varje parentes var för sig

destiny99 8136
Postad: 24 okt 2024 15:34 Redigerad: 24 okt 2024 15:36
Calle_K skrev:

Börja utifrån. Du har 3 parenteser och kommandot and mellan dessa. Därmed måste alla parenteser vara sanna för att resultatet ska vara sant.

Nu kan du behandla varje parentes var för sig

Okej men om vi börjar med (a oror not c) så måste det betyda att a eller b är sant och om ingen av dem är sant så är not c sant eller så är not c inte sant om a eller b är sant. Och om ingen av dem alla 3 bokstäver är sanna så är hela det falskt

Calle_K 2329
Postad: 24 okt 2024 15:54

Precis, så det finns bara ett utfall där parentesen är falsk.

destiny99 8136
Postad: 24 okt 2024 15:59 Redigerad: 24 okt 2024 16:02
Calle_K skrev:

Precis, så det finns bara ett utfall där parentesen är falsk.

Ja precis ett utall där den är falsk och 2 sanna utfall för första paretesen. Andra parentesen är samma sak , men hur är det med tredje paretensen? Jag är osäker på den.

Laguna Online 30746
Postad: 24 okt 2024 16:04

Du har fått en lista med alla tänkbara kombinationer av värden, A till H.

destiny99 8136
Postad: 24 okt 2024 16:08 Redigerad: 24 okt 2024 16:09
Laguna skrev:

Du har fått en lista med alla tänkbara kombinationer av värden, A till H.

Ja men den sista parentesen är jag osäker över hur många utfall den kan ha pga not operator. Den är väl alltid true oavsett om not a eller not c och om inga stämmer så är det alltid false?

Laguna Online 30746
Postad: 24 okt 2024 16:27

Jag förstår inte din sista mening. Är den alltid true och alltid false?

destiny99 8136
Postad: 24 okt 2024 16:28 Redigerad: 24 okt 2024 16:33
Laguna skrev:

Jag förstår inte din sista mening. Är den alltid true och alltid false?

Sista parentesen kan vara true eller falsk. Så jag tänker om första parentesen är true så är även andta parentesen det och den tredje har en not operator så den är falsk. 

Så True True false

     False False True

Alternativ B) och G). Men facit säger B) , E) och F) . Jag förstår inte hur de resonerar kring de där alternativen.

Laguna Online 30746
Postad: 24 okt 2024 16:33 Redigerad: 24 okt 2024 16:33

Varför skulle andra parentesen vara sann för att första parentesen är det?

T.ex. om b och c är falska så är första parentesen sann, men den andra falsk.

destiny99 8136
Postad: 24 okt 2024 16:35 Redigerad: 24 okt 2024 16:35
Laguna skrev:

Varför skulle andra parentesen vara sann för att första parentesen är det?

T.ex. om b och c är falska så är första parentesen sann, men den andra falsk.

Jag är inte med nu hur du tänker. Men om andra paretesen är falsk , vad har det med första och tredje paretesen att göra?? De vet vi inte om den är sanna eller falsk.

Laguna Online 30746
Postad: 24 okt 2024 16:36

Vad förstod du inte i det senaste jag skrev?

Det var ju du som kopplade ihop sanningsvärdena för parenteserna, och det är det jag undrar över. Du skrev "Så jag tänker om första parentesen är true så är även andta parentesen det".

destiny99 8136
Postad: 24 okt 2024 16:37 Redigerad: 24 okt 2024 16:41
Laguna skrev:

Vad förstod du inte i det senaste jag skrev?

Det var ju du som kopplade ihop sanningsvärdena för parenteserna, och det är det jag undrar över. Du skrev "Så jag tänker om första parentesen är true så är även andta parentesen det".

Ja men nu är det så att mina val av alternativ är fel pga sättet jag tänker på. Alternativ G stämmer inte enligt facit.

Jag vet inte hur de förväntar att man ska resonera sig här. Men om vi säger att b och c är falska båda två i andra paretesen b or c  så är hela den paretesen falsk och det påverkar första och tredje paretesen. I första paretesen så måste antingen a vara sant eller not c vara sant , om en av de är sant så är hela den sant, annars är den falsk om ingen av de är sant.

Smutstvätt Online 25241 – Moderator
Postad: 24 okt 2024 18:32 Redigerad: 24 okt 2024 18:33

Jag börjar en lite annorlunda väg i detta inlägg, känn ingen stress om du hellre fortsätter med de tidigare metoderna. :)

 

Det kan vara en framkomlig metod att reducera ned frågan till enbart två variabler, och se hur uttrycken faller ut då. Eftersom vi har C och not C, var det den variabel jag såg som mest intressant att "göra sig av med". Det kan vi göra genom att undersöka först vad som händer om C är sant, och sedan vad som händer om C inte är sant. Ungefär såhär: 

  • Ponera att C är sant – då är not C falskt. Vi kan då förenkla uttrycket ganska mycket: 

AB¬CBC¬A¬CC sant: (AB¬CFalskt)(BCSant)(¬A¬CFalskt)=(AB)(BCSant)(¬A)

För att påståendet ska vara sant, måste A vara falskt (högra parentesen), vilket medför att B måste vara sant (vänstra parentesen). 

Slutsats av detta fall: Om C är sant, måste A vara falskt och B vara sant (motsvarande alternativ E).

  • Nu undersöker vi fallet då C är falskt: 

AB¬CBC¬A¬CC falskt: (AB¬CSant)(BCFalskt)(¬A¬CSant)=(AB¬CSant)(B)(¬A¬CSant)

B måste vara sant (mittparentesen). Vad säger detta om alternativen för A? :)

destiny99 8136
Postad: 24 okt 2024 19:02 Redigerad: 24 okt 2024 19:04
Smutstvätt skrev:

Jag börjar en lite annorlunda väg i detta inlägg, känn ingen stress om du hellre fortsätter med de tidigare metoderna. :)

 

Det kan vara en framkomlig metod att reducera ned frågan till enbart två variabler, och se hur uttrycken faller ut då. Eftersom vi har C och not C, var det den variabel jag såg som mest intressant att "göra sig av med". Det kan vi göra genom att undersöka först vad som händer om C är sant, och sedan vad som händer om C inte är sant. Ungefär såhär: 

  • Ponera att C är sant – då är not C falskt. Vi kan då förenkla uttrycket ganska mycket: 

AB¬CBC¬A¬CC sant: (AB¬CFalskt)(BCSant)(¬A¬CFalskt)=(AB)(BCSant)(¬A)

För att påståendet ska vara sant, måste A vara falskt (högra parentesen), vilket medför att B måste vara sant (vänstra parentesen). 

Slutsats av detta fall: Om C är sant, måste A vara falskt och B vara sant (motsvarande alternativ E).

  • Nu undersöker vi fallet då C är falskt: 

AB¬CBC¬A¬CC falskt: (AB¬CSant)(BCFalskt)(¬A¬CSant)=(AB¬CSant)(B)(¬A¬CSant)

B måste vara sant (mittparentesen). Vad säger detta om alternativen för A? :)

Oj jag har ingen aning. Om B är sant så är även A och C sant. Alternativ A) är inte korrekt enligt facit.

Laguna Online 30746
Postad: 24 okt 2024 19:41

Det finns i princip två sätt att lösa problemet: att prova alla möjligheter, eller att resonera logiskt.

En smula kan man få kombinera dessa: man tar en bra variabel och antar något om den och ser vad det leder till.

Här är det inte så krävande att prova allt, det finns bara 8 möjligheter, men i problem som kommer från verkligheten kan det finnas 100 variabler och därmed 2100 möjligheter. Då kan man inte prova alla.

destiny99 skrev:

Oj jag har ingen aning. Om B är sant så är även A och C sant. Alternativ A) är inte korrekt enligt facit.

A måste inte vara sann – den vänstra parentesen är sann genom att C (och B, men det är inte nödvändigt) är sann. Mittenparentesen är sann då vi konstaterat att B måste vara sann, och den högra parentesen är sann genom att C är falsk. Allt som allt ger detta oss möjligheterna: 

  • C falsk, B sann, A falsk (alternativ F)
  • C falsk, B sann, A sann (alternativ B).

 

Detta tillsammans med att vi hittade att alternativ E är korrekt (då C är sann), gör att vi kommer fram till vårt svar. :)


Tillägg: 24 okt 2024 20:53

Som Laguna skriver, detta fungerar i princip bara om antalet variabler är få, men då fungerar det.

destiny99 8136
Postad: 24 okt 2024 21:01 Redigerad: 24 okt 2024 21:03
Smutstvätt skrev:
destiny99 skrev:

Oj jag har ingen aning. Om B är sant så är även A och C sant. Alternativ A) är inte korrekt enligt facit.

A måste inte vara sann – den vänstra parentesen är sann genom att C (och B, men det är inte nödvändigt) är sann. Mittenparentesen är sann då vi konstaterat att B måste vara sann, och den högra parentesen är sann genom att C är falsk. Allt som allt ger detta oss möjligheterna: 

  • C falsk, B sann, A falsk (alternativ F)
  • C falsk, B sann, A sann (alternativ B).

 

Detta tillsammans med att vi hittade att alternativ E är korrekt (då C är sann), gör att vi kommer fram till vårt svar. :)


Tillägg: 24 okt 2024 20:53

Som Laguna skriver, detta fungerar i princip bara om antalet variabler är få, men då fungerar det.

Jag är inte helt med på denna metod och upplever den som svår att komma ihåg. Så jag får bara acceptera facits svar.  Jag är ganska osäker på hur man ska resonera sig till rätt svar förurom de svaren jag fann dvs alternativen B ) och G) där G )är falsk enligt facit.

destiny99 8136
Postad: 24 okt 2024 21:05
Laguna skrev:

Det finns i princip två sätt att lösa problemet: att prova alla möjligheter, eller att resonera logiskt.

En smula kan man få kombinera dessa: man tar en bra variabel och antar något om den och ser vad det leder till.

Här är det inte så krävande att prova allt, det finns bara 8 möjligheter, men i problem som kommer från verkligheten kan det finnas 100 variabler och därmed 2100 möjligheter. Då kan man inte prova alla.

Ja men jag fick att flera alternativ stämde när tex b från andra paretensen är falsk. 

destiny99 8136
Postad: 25 okt 2024 09:45 Redigerad: 25 okt 2024 09:48
# Definiera värden för a, b och c
a = True    # eller False
b =  True # eller True
c = True   # eller False

# Kontrollera om uttrycket är sant eller falskt med if-sats
if a or b or not c and b or c and  not a  or not c:
    print("Uttrycket är True")
else:
    print("Uttrycket är False") 

I facit är rätt svar B), E och F). Problemet är att jag får även att A) och C) stämmer i koden förutom B) och E) men jag får aldrig alternativ F). 


Tillägg: 25 okt 2024 10:31

Jag började resonera mig med alternativen istället för att tänka om A) , B) osv  gör så att påståendet (a or b or not c) and (b or c ) and (not a or not c) är alltid sant eller inte. Då fick jag att B), E) samt F) uppfyller att påstående alltid är sant dvs alla tre parenteser blir true true true  vilket är vad vi vill ha. De andra alternativen ger True false true eller liknande vilket inte matchar med att påståendet ska vara sant för alla 3 parenteser.

Ture 10460 – Livehjälpare
Postad: 2 nov 2024 16:38

Du har glömt parenteser i din if sats, så här blir det bättre

# Definiera värden för a, b och c
a = False    
b =  True 
c = False  

# Kontrollera om uttrycket är sant eller falskt med if-sats
if (a or b or not c) and (b or c )and ( not a  or not c):
    print("Uttrycket är True")
else:
    print("Uttrycket är False") 
destiny99 8136
Postad: 4 nov 2024 10:04
Ture skrev:

Du har glömt parenteser i din if sats, så här blir det bättre

# Definiera värden för a, b och c
a = False    
b =  True 
c = False  

# Kontrollera om uttrycket är sant eller falskt med if-sats
if (a or b or not c) and (b or c )and ( not a  or not c):
    print("Uttrycket är True")
else:
    print("Uttrycket är False") 

Ok tack!

Svara
Close