算法设计与实现竞赛
1.参赛者 :
所有算机 0301-0304 、算机 0521-0522 、算机 0401-0403 、以及计算 0301-0303 班学生均可自由参加。
2.组织者 :
计算机科学与技术系。负责人:刘金义。
3.竞赛时间 :
2006 年 9 月 10 日起 至 2006 年 12 月 31 日 止。
4.奖项设置 :
预设特等奖一名,一等奖 1 名,二等奖 2 名,三等奖 3 名。
5.竞赛题目 :
设计算法并且编写程序解决 Joseph 问题。 Joseph 问题可以描述如下:设有 n 个人排列成一圈,再任意给定一个正整数 m ≤ n 。从指定的第一个人开始,沿着这个圈,顺序移出第 m 个人。当某个人被移出后,计数从下一个开始,继续移出第 m 个人。这个过程一直进行下去,直到最后一个人被移出。这样,人们从圈中移出的顺序就构成了 1 到 n 之间 n 个数的一个排列,称之为 ( n , m )-Joseph 排列。例如, (7,3)-Joseph 排列为 { 3, 6, 2, 7, 5, 1, 4 } 。
本题目要求,编写一程序 ( 控制台程序即可 ) ,对于任意输入的合法的 n 与 m ,输出 ( n , m )-Joseph 排列。为了节省时间,当 n >100 时,只需输出最后一个数字即可。具体功能可参照所提供的可执行参考程序 Joseph.exe 。
编程语言需采用 C 或 C++ ,并且在 Visual C++ 下调试通过。
6.评奖规则:
三个条件决定优胜者:一是程序的正确性;二是程序的运行时间 ( 例如在 1 分钟之内,应能够计算 n =10 6 的 Joseph 排列 ) ;三是提交时间先后顺序。 获奖者必须通过答辩,以测试是否独自完成。
7.程序提交方法:
2003 级学生将调试好的程序发送到邮箱 algorithm03@163.com , 2004 级学生将调试好的程序发送到邮箱 algorithm04@163.com ,或亲自用 U 盘送交负责人刘金义 ( 计算机楼 422 ,电话 13504232906).