数据结构实验四 约瑟夫生死游戏
實(shí)驗(yàn)四 約瑟夫生死游戲
1、實(shí)驗(yàn)?zāi)康?#xff1a;
利用線性表解決實(shí)際問(wèn)題。
2、實(shí)驗(yàn)環(huán)境與設(shè)備:
已安裝Visual Studio 2010(或其以上版本)集成開(kāi)發(fā)環(huán)境的計(jì)算機(jī)。
3、實(shí)驗(yàn)原理:
(1)利用線性表的刪除功能剔除被殺掉的人。
(2)利用單鏈表、不帶頭結(jié)點(diǎn)的循環(huán)鏈表或帶頭結(jié)點(diǎn)的循環(huán)鏈表均可實(shí)現(xiàn)。
4、實(shí)驗(yàn)內(nèi)容:
約瑟夫生死游戲問(wèn)題有如下幾種表述;
表述一:古代某法官要判決N個(gè)犯人的死刑,他有一條荒唐的法律,將犯人站成一個(gè)圓圈,從第S個(gè)人開(kāi)始數(shù)起,每數(shù)到第D個(gè)犯人,就拉出來(lái)處決,然后再數(shù)D個(gè),數(shù)到的再處決……直到剩下的最后一個(gè)可赦免。
表述二:17世紀(jì)的法國(guó)數(shù)學(xué)家加斯帕在《數(shù)目的游戲問(wèn)題》中講了這樣一個(gè)故事: 15個(gè)教徒和15 個(gè)非教徒在深海上遇險(xiǎn),必須將一半的人投入海中,其余的人才能幸免于難,于是想了一個(gè)辦法: 30個(gè)人圍成一圓圈,從第一個(gè)人開(kāi)始依次報(bào)數(shù),每數(shù)到第九個(gè)人就將他扔入大海,如此循環(huán)進(jìn)行直到僅余15個(gè)人為止。問(wèn)怎樣排法,才能使每次投入大海的都是非教徒。
表述三:30個(gè)旅客同乘一條船,因?yàn)閲?yán)重超載,加上風(fēng)高浪大,危險(xiǎn)萬(wàn)分;因此船長(zhǎng)告訴乘客,只有將全船一半的旅客投入海中,其余人才能幸免遇難。無(wú)奈,大家只得同意這種辦法,并議定30個(gè)人圍成一圈,由第一個(gè)人開(kāi)始,依次報(bào)數(shù),數(shù)到第9人,便把他投入大海中,然后從他的下一個(gè)人數(shù)起,數(shù)到第9人,再將他投入大海,如此循環(huán),直到剩下15個(gè)乘客為止。問(wèn)哪些位置是將被扔下大海的位置。
表述四:據(jù)說(shuō)著名猶太歷史學(xué)家 Josephus有過(guò)以下的故事:在羅馬人占領(lǐng)喬塔帕特后,39 個(gè)猶太人與Josephus及他的朋友躲到一個(gè)洞中,39個(gè)猶太人決定寧愿死也不要被敵人抓到,于是決定了一個(gè)自殺方式,41個(gè)人排成一個(gè)圓圈,由第1個(gè)人開(kāi)始報(bào)數(shù),每報(bào)數(shù)到第3人該人就必須自殺,然后再由下一個(gè)重新報(bào)數(shù),直到所有人都自殺身亡為止。然而Josephus 和他的朋友并不想遵從。首先從一個(gè)人開(kāi)始,越過(guò)k-2個(gè)人(因?yàn)榈谝粋€(gè)人已經(jīng)被越過(guò)),并殺掉第k個(gè)人。接著,再越過(guò)k-1個(gè)人,并殺掉第k個(gè)人。這個(gè)過(guò)程沿著圓圈一直進(jìn)行,直到最終只剩下一個(gè)人留下,這個(gè)人就可以繼續(xù)活著。問(wèn)題是,給定了規(guī)則,一開(kāi)始要站在什么地方才能避免被處決?Josephus要他的朋友先假裝遵從,他將朋友與自己安排在第16個(gè)與第31個(gè)位置,于是逃過(guò)了這場(chǎng)死亡游戲。
其數(shù)學(xué)模型歸結(jié)如下:
數(shù)學(xué)模型:假設(shè)n個(gè)人排成一個(gè)環(huán)形,依次順序編號(hào)1,2,…,n。從第1號(hào)開(kāi)始,沿環(huán)計(jì)數(shù),每數(shù)到第m個(gè)人就讓其出列,且從下一個(gè)人開(kāi)始重新計(jì)數(shù),繼續(xù)進(jìn)行下去。這個(gè)過(guò)程一直進(jìn)行到剩下k個(gè)人為止。
試?yán)镁€性表編程模擬該游戲。
5、實(shí)驗(yàn)考核:
(1)完成紙質(zhì)版實(shí)驗(yàn)報(bào)告
(2)提交電子版作業(yè)
6、執(zhí)行結(jié)果示例如下:
圖1 示例一
圖2 實(shí)例二
圖3 示例三
上代碼
結(jié)果
(1)演示6剩1(間隔3)
(2)表述二和三:30剩15(間隔9)
(3)表述四:41剩2(間隔3)
總結(jié)
以上是生活随笔為你收集整理的数据结构实验四 约瑟夫生死游戏的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: TouchEn nxKey:键盘记录反键
- 下一篇: 帮我写一篇外骨骼文献综述