带密码的约瑟夫问题:编号为1,2,......,n的n个人按照顺时针方向围坐一圈,每个人有自己的编号(正整数)、姓名和密码(正整数)三个数据项。一开始任选一个正整数作为报数上限值,从第一个人开始顺时针
时间: 2023-03-19 16:27:43 浏览: 208
约瑟夫环实现编号是1,2,……,n的n个人按照顺时针方向围坐一圈
5星 · 资源好评率100%
报数,报到上限值的人出列,然后从他的下一个人开始重新报数,直到所有人都出列为止。但是,每个人的密码不同,只有知道密码的人才能出列。问:按照什么顺序可以使得所有人都能够出列?
答:按照密码从小到大的顺序进行报数,即先找到密码最小的人,然后从他开始顺时针报数,报到上限值的人出列,然后再从他的下一个密码最小的人开始重新报数,直到所有人都出列为止。这样可以保证每个人都能够出列,因为每次出列的人都是密码最小的人,而且每个人的密码都不同,所以不会出现密码相同的情况。
阅读全文