Gå til innhold

Snedige ting du lurer på V.2


Anbefalte innlegg

For de som ikke forstår Monty Hall-problemet og har noenlunde gode kunnskaper innen dataprogrammering gir jeg følgende utfordring:

 

Skriv et program som "gjennomfører" Monty Hall-problemet en gitt antall ganger ved å bestemme tilfeldig hva som er bak dørene FØR man begynner en "runde", så velge en tilfeldig dør, åpne en tilfeldig annen dør (som da alltid bare har en "sau", viktig at den aldri åpner en dør som har bilen), og så finner om man vil vinne ved å bytte dør, eller ved å beholde samme dør (fordi den "vet" allerede hva som er bak dørene). Jeg ber ikke om at det skal vises grafisk eller noe slikt, bare at den summerer opp hvor mange ganger man "vinner" på å skifte dør, og på å beholde samme dør.

 

Jeg gir ikke denne utfordringen fordi jeg tror sluttstatistikkene vil overbevise dere (selv om den vil det hvis man kjører mange nok itereringer, ihvertfall noen hundre eller tusener), men fordi når jeg selv prøvde å skrive dette programmet, fikk jeg en "aha-opplevelse", og siden da har jeg aldri betvilt dette problemet. Det er en god sjanse for at dere også får denne opplevelsen. Rett og slett fordi man blir nødt til å tenke gjennom alle aspekter ved problemet når man skriver et slikt program, også de mindre "opplagte".

 

 

Hvis dere derimot ikke har peil på programmering, kan jeg dessverre ikke hjelpe så mye utover det som allerede er sagt i tråden.

Lenke til kommentar
Videoannonse
Annonse
For de som ikke forstår Monty Hall-problemet og har noenlunde gode kunnskaper innen dataprogrammering gir jeg følgende utfordring:

 

Skriv et program som "gjennomfører" Monty Hall-problemet en gitt antall ganger ved å bestemme tilfeldig hva som er bak dørene FØR man begynner en "runde", så velge en tilfeldig dør, åpne en tilfeldig annen dør (som da alltid bare har en "sau", viktig at den aldri åpner en dør som har bilen), og så finner om man vil vinne ved å bytte dør, eller ved å beholde samme dør (fordi den "vet" allerede hva som er bak dørene). Jeg ber ikke om at det skal vises grafisk eller noe slikt, bare at den summerer opp hvor mange ganger man "vinner" på å skifte dør, og på å beholde samme dør.

 

Jeg gir ikke denne utfordringen fordi jeg tror sluttstatistikkene vil overbevise dere (selv om den vil det hvis man kjører mange nok itereringer, ihvertfall noen hundre eller tusener), men fordi når jeg selv prøvde å skrive dette programmet, fikk jeg en "aha-opplevelse", og siden da har jeg aldri betvilt dette problemet. Det er en god sjanse for at dere også får denne opplevelsen. Rett og slett fordi man blir nødt til å tenke gjennom alle aspekter ved problemet når man skriver et slikt program, også de mindre "opplagte".

 

 

Hvis dere derimot ikke har peil på programmering, kan jeg dessverre ikke hjelpe så mye utover det som allerede er sagt i tråden.

C-nerden i meg begynte og krible, og dermed spratt dette programmet ut. Jeg er en n00b i C, men jeg er ganske sikkert på at dette programmet er uten logiske brister. Det kunne sikkert vært gjort mer elegant, men C er så kjapt uansett.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int rand_door(void)			// Velger et tilfeldig heltall fra og med 1 til og med 3, og dermed dør 1, 2 eller 3.
{
return rand() % 3 + 1;
}

int main (void) {
int n_win = 0;
int rounds = 1000000;
int i;
float probability;

int win;
int first_pick;
int second_pick;
int open;

srand(time(NULL));

for (i = 1; i <= rounds; i++)
{
	win = rand_door();				// Denne luken inneholder prisen

	first_pick = rand_door();			// Denne luken velger du i utgangspunktet
	do {
		open = rand_door();			// Denne luken blir åpnet
	} while (open == first_pick || open == win);
	second_pick = 6 - first_pick - open;  // Her bytter vi luke. Summen av alle tre lukene er alltid 6.

	if (second_pick == win) {		// Hvis det nye valget er det samme som vinnerluken
		n_win++;
	}
}
printf("Du vant %d ganger\n", n_win);
probability = (float) n_win / rounds;
printf("Da blir sannsynligheten %f\n", probability);

return(0);
}

Som de oppvakte kanskje legger merke til, så kjøres det én million runder. I hvert bidige tilfelle bytter vår stakkars venn luke, og resultatet til slutt er at han vinner ca. 667000 ganger hver gang programmet kjører. Det er altså 2/3 sannsynlighet for å vinne hvis man bytter luke.

Det er vel ganske opplagt at det 1/3 sannsynlighet for å vinne hvis man ikke bytter luke, så det gidder jeg ikke å skrive noe program for. Det blir for lite utfordring.

Lenke til kommentar

Det virker som treklatring er noe alle barn liker, og som kan ha en direkte kobling med hvordan våre forfedre utviklet seg. Og hadde vært morsomt hvis det var sant. TV titting derimot må man nok forklare på en annen måte.

Endret av LunarPoet
Lenke til kommentar

TV programmer og filmer består av mye forskjellig. Vi har lenge likt å fortelle hverandre fortellinger og å høre fortellinger. Som muligens har en evolusjonistisk forklaring bak seg.

 

Men nei jeg sier ikke at det er en sammenheng, bare at det kan være en. Og syns ikke du bør være så kjapp på avtrekkeren som å ta en slik besluttning.

Endret av LunarPoet
Lenke til kommentar
Så klart, men mener dere da også at det finnes en sammenheng mellom våre forfedre og TV-titting? Barn som sysler med klatring og apers klatre-fetish er bare et sammentreff.

 

 

Nei, det blir feil å si, ettersom TV-titting er et fenomen som er felles for alle aldersgrupper, og er laget for å utnytte vår natur til å få oss oppslukt. Av en eller annen grunn er barn derimot svært keen på å klatre, i motsetning til andre aldersgrupper.

Endret av Kakofoni
Lenke til kommentar
*Diverse om monty hall*

Jeg forstår på en måte hvorfor man øker sjansene ved å bytte.

 

Det jeg ikke helt klarer å vri hodet rundt, er hvorfor det blir annerledes dersom programlederen ikke vet hva han åpner.

La oss nå si at han ikke vet det;

Du velger dør 1, og han skal på måfå åpne 2 eller 3. Om han så tilfeldigvis åpner en sau, sier wikipedia at sjansene ikke øker ved å bytte, da blir det 50/50.. ?

Hva er forskjellen på om han tilfeldig eller bevisst viser frem en sau?

 

Om jeg vet det ligger en skatt i ett av 10 hull, er det 10% sjanse for å finne den i det første. Når jeg har funnet 5 tomme hull, er det 20% sjans på hull 6 jeg undersøker, eller hva? og etter 8 tomme, på hull 9 er det 50%.

 

Med den logikken blir det 50/50 på dørene om programlederen tilfeldigvis viser en sau. Men med en gang han vet hva han åpner, er det plutselig ikke 50/50 mer.

Jeg sliter med å forstå at programlederens kunnskap påvirker vanlig sannsynlighetsberegning, selv om jeg faktisk forstår det jeg leser som gjør sjansene bedre ved å bytte.

 

I samme slengen: Ville du byttet? Hvor surt er det ikke å bytte, også oppdage at bilen var i den døren du først valgte på magefølelsen? :p

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...