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:

  1. Åk till Afrika .
  2. Börja vid Godahoppsudden .
  3. Arbeta norrut på ett ordnat sätt, genom att korsa kontinenten växelvis öster och väster,
  4. 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:

  1. Åk till Afrika .
  2. Sätt en elefant i Kairo .
  3. Börja vid Godahoppsudden .
  4. Arbeta norrut på ett ordnat sätt, genom att korsa kontinenten växelvis öster och väster,
  5. 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.
  6. Om du är i Kairo, så finns det inga elefanter i Afrika (annat än den du placerade där).

Se även

Anteckningar

  1. ^ a b Olsen, Peter C. (September 1989), "Pachydermic Personal Prediction" , Stop Bit, Byte , p. 404
  2. ^   Steuben, Michael (1998). Tjugo år före svarta tavlan . Cambridge University Press. sid. 62. ISBN 9780883855256 .

externa länkar