1 项目简介
约瑟夫生者死者游戏的大意是:30个旅客同乘一条船,因为严重超载,加上风高浪大危险万分;因此船长告诉乘客,只有将全船一半的旅客投入海中,其余人才能幸免于难。无奈,大家只得统一这种方法,并议定30个人围成一圈,由第一个人开始,依次报数,数到第9人,便将他投入大海中,然后从他的下一个人数起,数到第9人,再将他投入大海,如此循环,直到剩下15个乘客为止。问哪些位置是将被扔下大海的位置。
2 项目功能
本游戏的数学建模如下:假如N个旅客排成一个环形,依次顺序编号1, 2, …, N。从某个指定的第S号开始。沿环计数,每数到第M个人就让器出列,且从下一个人开始重新计数,继续进行下去。这个过程一直进行到剩下K个旅客为止。(要求采用单循环链表)
本游戏要求用户输入的内容包括:
-
旅客的个数,也就是N的值
-
离开旅客的间隔书,也就是M的值
-
所有旅客的序号作为一组数据要求存放在某种数据结构中
本游戏要求输出的内容是包括:
-
离开旅客的序号
-
剩余旅客的序号
3 数据结构
- 单循环链表
4 具体实现
4.1 基本构成
结构体Player: (int) pos 玩家所处初始位置,(struct *)尾指针

本文介绍了一款基于约瑟夫生存游戏的经典算法问题。游戏中30名乘客为求生存必须轮流投掷一半人数入海。通过单循环链表实现这一逻辑,详细解释了数据结构设计及核心算法流程。
2832

被折叠的 条评论
为什么被折叠?



