從前,有個叫二愣的屠夫,有殺豬宰羊的好手藝,又雇傭著十幾個殺豬能手,在這方圓幾十里,算是有名的大屠戶了。
一天,二愣又要殺豬了。按照慣例,總是南二愣先殺第一頭豬。哪知,“老虎也有大意的時候”,只見那頭豬剛被翻倒在地,就狠狠地咬了二愣一口,急急地跑進豬圈了。
這還了得!二愣氣呼呼地追進豬圈里,可是圈里有1000頭豬,怎么認得出那頭豬呢!
“殺!”隨著二愣一聲吼,1000頭豬全部被強行趕進屠宰場。
“都殺了嗎?”伙計們怯生生地問。
“不?!倍逗鋈幌氤鰝€怪主意,“把這1000頭豬排成一行,先殺第一頭,然后隔一頭殺一頭;殺完第一遍后,還是原來的隊形,再用同樣的方法殺第二遍;這樣一遍一遍地殺下去——”二愣停了停說,“最后只留下一頭豬?!?/p>
二愣心想,1000頭豬最后只留下一頭,看你還能活!
哪里知道,這是一頭聰明的豬,趁著混亂,它很快找到了避難的位置,居然躲過了這一刀。
請問,這頭豬到底排在什么位置上呢?
答案:按這樣的殺法,1000頭豬只須殺9遍就只剩最后一頭豬了。每殺一遍所剩頭數(shù)依次為1000第一遍500第二遍250第三遍125第四遍62第五遍31第六遍15第七遍7第八遍3第九遍1。
從后往前推理知道,最后一頭豬排在第八遍后的第2遍,排在第七遍后的第4位,排在第六遍后的第8位……依此類推,我們可以知道前一遍排序數(shù)是后一遍排序數(shù)的2倍。所以第五遍、第四遍……第一遍后分別排在16,32,64,128,256位。最初排的位置應(yīng)該是第512位。