智能算法挑战复赛高中组
(总共4道题)
1.大数比大小
【题目描述】
输入两个很大的十进制正实数(长度超过20位),输出数值较大的数。
说明:
1)两个数都大于10000000000000000000;
2)实数包含有小数点的数,一个数里只可能有一个小数点,且不在数的最前或
最后。
【输入格式】
输入两行,每行一个数字
【输出格式】
数值较大的数。
如果两数相等,则输出“equation”。
如果输入的数不符合数字规则,则输出“error”。
【样例输入】(测试数据不包含本样例)
11111111111111111111111111111111111111
2222222222222222222222222222222222222222
【样例输出】
2222222222222222222222222222222222222222
2.多层汉诺塔
【题目描述】
汉诺塔是一个有意思的游戏,每个柱子上套上多个中心有洞的圆盘,每次只能移
动一个圆盘,并且每个圆盘不能放在比它面积小的圆盘的上面。现在有三套圆盘并
叠加放在一个柱子上了,请移动圆盘,使每个柱子上的圆盘都按照相同的顺序从大
到小的摆放好,也就是把三份盘子平均分开。请问对于n个不同数量的圆盘(也就
是共有3*n个盘子),分别在每个柱子上分好n个盘子,最少需要移动多少步?示
意图如下图。
【输入格式】
输入共1行,包括一个正整数n
【输出格式】
输出共1行,一个整数,表示需要移动圆盘的最少的步骤数。
【样例输入】
1
【样例输出】
2
3.在AI下棋程序中,计算猫抓老鼠游戏的概率
【题目描述】
有这样一个游戏:在一个n*n的格子棋盘里,n是奇数;有两种棋子,一个是只
能横向移动的棋子猫,一个是可以上下左右移动的棋子老鼠。假设老鼠在棋盘的正
中央,第一步老鼠将进行上下左右的随机移动。棋子猫在从棋盘的中间行的最左边
向棋盘的最右边移动,棋子猫每次移动只能是从左到右移动一步,第一步时猫位于
棋盘的中间行的最左边格子。请问:在猫移动到棋盘外面前,会有多大概率抓到老
鼠?
【输入格式】
输入一个大于1的奇数n,表示棋盘的大小。
【输出格式】
棋子猫抓到棋子老鼠的概率。(小数四舍五入保留4位有效数字)
【样例输入】(测试数据不包含本样例)
3
【样例输出】
0.6667
4.过河问题
【题目描述】
有n个人要渡河,但只有一条小船,这条小船一次只能坐下最多两个人,并且
只有一副船桨。每个人划船的速度不一样,如果两个人一起上船,由于重量变大,
划船的速度相当于是划船速度最慢的那个人速度。假设给出每个人单独划船过河所
花费的时间T
i,请问所有人都过河的总时间最短的时间?
【输入格