Elefant i Kairo
En elefant i Kairo är en term som används i datorprogrammering för att beskriva en bit data som matchar sökkriterierna som avsiktligt infogats i slutet av ett sökutrymme, för att säkerställa att sökalgoritmen avslutas; det är ett humoristiskt exempel på ett sentinelvärde . Termen härstammar från en humoristisk uppsats som cirkulerade på Internet som publicerades i tidningen Byte i september 1989, och som beskrev hur olika yrken skulle gå tillväga för att jaga elefanter.
Algoritm
När jag jagar elefanter beskriver artikeln programmerare som följer denna algoritm:
- Åk till Afrika .
- Börja vid Godahoppsudden .
- Arbeta norrut på ett ordnat sätt, genom att korsa kontinenten växelvis öster och väster,
- Under varje traverspass:
- Fånga varje djur som ses.
- Jämför varje djur som fångas med en känd elefant.
- Stoppa när en matchning upptäcks.
Denna algoritm har en bugg, nämligen ett gränskontrollfel : om inga elefanter hittas kommer programmeraren att fortsätta norrut och hamna i Medelhavet, vilket orsakar onormal avslutning genom att drunkna .
Således modifierar erfarna programmerare ovanstående algoritm genom att placera en känd elefant i Kairo för att säkerställa att algoritmen kommer att avslutas. Den modifierade algoritmen är därför följande:
- Åk till Afrika .
- Sätt en elefant i Kairo .
- Börja vid Godahoppsudden .
- Arbeta norrut på ett ordnat sätt, genom att korsa kontinenten växelvis öster och väster,
- Under varje traverspass:
- Fånga varje djur som ses.
- Jämför varje djur som fångas med en känd elefant.
- Stoppa när en matchning upptäcks.
- Om du är i Kairo, så finns det inga elefanter i Afrika (annat än den du placerade där).
Se även
Anteckningar
- ^ a b Olsen, Peter C. (September 1989), "Pachydermic Personal Prediction" , Stop Bit, Byte , p. 404
- ^ Steuben, Michael (1998). Tjugo år före svarta tavlan . Cambridge University Press. sid. 62. ISBN 9780883855256 .