八皇后问题程序及注解
2003-12-3 大榕树
大家一定见过这种办法吧 ,但是做为初学者理解起来特别困难,我就把我当时对它的理解简单说一下,不对的地方大家给个 建议!
program eightqueens;
var
x:array[1..8] of integer;
a,b,c:array[-7..16] of boolean;
i:integer;
procedure print;
var k:integer;
begin
for k:=1 to 8 do write(x[k]:4);
writeln;
end;
procedure try(i:integer);
var j:integer;
begin
for j:=1 to 8 do
if a[j] and b[i+j] and c[i-j]
then begin
x:=j;
a[j]:=false;
b[i+j]:=false;
c[i-j]:=false;
if i<8 then try(i+1)
else print;
a[j]:=true;
b[i+j]:=true;
c[i-j]:=true
end
end;
begin
for i:=-7 to 16 do
begin
a:=true;
b:=true;
c:=true
end;
try(1);
end.
……现在循环从 i=1 ,j:=1 to 8 do 开始 此时 计算机检测到 i=1 j=1 简化为(1,1)为空,占用该位置并令该位置对应的斜线和水平方向的位置为 false ,然后程序就开始去执行try(2),注意此时计算机在i=1 这层仅仅走拉一个循环(j=1)就跳到拉i=2 这层里此时计算机从j:=1 to 8 do 又开始循环,排除 j=1,j=2 得到 (2,3)注意计算机在层里也只是走拉3(j=3)个循环然后又跳到拉i=3 这层依次类推得到(3,5),(4,2)(5,4)而在i=6 这层里计算机从j:= 1 to 8 do 都没有找到合适的位置,此时注意在i=6 这层里计算机计算机将返回到i=5 这层里,(因为用拉递归)并且释放(5,4)该位置,为什么要释放呢?因为原因很简单如果不释放的话 该位置对应的斜线和水平方向会对以后的几层造成影响,让计算机误认为为false。此时的在i=5这层里 j=4才是结束,然后计算机又会从j=5到 8 开始去找合适的位置,如果找不到又会返回到上一层依次类推直到计算机找到一组解 输出,假设在(8,3)这个位置是计算机找到的一组解,此时计算机又会从j=4到8 开始循环,如果找不到 计算机就会返回上一层的即i=7这层接着上一次的跳出位置走完以后的循环,依次类推不断的返回,跳出, 求解,(即令前几个位置不变,从第8个位置变换,没有空位置的。接会返回上一层)最后返回到i=1这层里,注意此时在这层里也只是走拉j=1个循环然后计算机就又开始从j= 2 去试着找....大家有没有算过求出所有的解要走过多少个循环?我想估计也不下1000个吧。其实整个过程就是一个重复的过程(即递归)倒着想在i=7 这层里的j=1 位置即(7,1) 计算机会去试从(8,1)到(8,8)这8 个位置,而在(7,2)也同样会去试这8 个位置等等在(6,1)会试(7,1)到(7,8) 等。 这是正着考虑(1,1)这里计算机会试着从(2,1)到(2,8)这8个位置而在这8 个位置里并没有试完就有空位置 (2,3)此时计算机会在这个位置对下一层里开始试(3,1)..(3,8)依次类推,试不通的返回,接着走完上一层直到试完所有的位置!
一道超级难题!
已知A、B、C三个人和2到99的两个整数。C把这两个整数的和告诉A,再把这两个整数的积告诉B;然后问他们是否知道这两个整数分别是多少。A说:"虽然我不知道,但我知道B肯定也不知道!"B说:"我本来不知道,但我听了A的话后我知道了。"听了B的话后A又说:"我现在也知道了。"请问:这两个整数分别是多少?
极品的题目
已知sin(sin(sin(...sin(x))))=0;
求:cos(cos(cos(...cos(x))))
数论题三十道!
1. 设a,b是正整数,n是非负整数,求证若a^n|b则a^(n+1)|((a+1)^b-1)
2. 设f(x)是整系数多项式,且存在整数k使得f(0),f(1)...,f(k-1)都不能被k整除,试证f(x)无整数根.
3. 设3|(a^2+b^2)试证3|a且3|b
4. 设M(n)=2^n-1试证(M(m),M(n))=1的充要条件是(m,n)=1
5. 设a,b是不全为零的整数,一切形如ax+by(x,y为整数)的数中,最小正数是d,试证d=(a,b)
6. 试证有无限多个自然数n,使得6n+1,6n-1同时为合数.
7. 求所有的a使得a,a+4,a+14均为合数
8. 设素数p>=5,且2p+1是素数,试证4p+1必为合数.
9. 设p(s)是各位数字全部由1组成的s位整数.试证若p(s)为素数则s也为素数.
10.设2^m+1是素数,试证必有m=2^n,n是非负整数.
11.试证形如6m-1的素数有无限多个.
12.设整数a使得任何自然数n,数n^4+a都是合数.试证这样的a有无限多个.
注:以下[x]表示不大于x的最大整数,{x}=x-[x]
13.求方程x^3-[x]=3的实数解.
14.对于任意的实数x,y试证
(1) [2{x}]+[2{y}]>=[{x}+{y}]
(2) [2x]+[2y]>=[x]+[x+y]+[y]
(3) [[nx]/n]=[x]
15.设x是任意实数,求证
[x]+[x+1/n]+[x+2/n]+......+[x+(n-1)/n]=[nx]
16.设正整数n使a^n≡1(mod m),这些n中最小的是t,求证t|n,特别的,若(a,m)=1,则t|φ(m)
φ(m)指欧拉函数
17.求使a^t≡1(mod 13)成立的最小正整数t,这里
(1)a=3 (2)a=6 (3)a=7
18.求证对任何素数p,数2^p+3^p都不是完全平方数.
19.n是自然数.求证当且仅当4|n时,5不能整除(1^n+2^n+3^n+4^n)
20.设x1,x2,....,xm是模m的一个完全剩余系,(a,m)=1,求证ax1+b,ax2+b,...,axm+b也是模m的一个完全剩余系
21.设a^2+b^2可以被形如4m+3的素数整除,求证a或b可被该素数整除.
22.设(n,10)=1,求证存在一个各位数字都是3的正整数a,使得n|a
23.求证对于任意正整数n,都存在一个由数字1和0组成的正整数a,使得n|a
24.设p为素数,且a1,a2,...,ap是全由素数构成的递增等差数列.求证a1>p,且数列的公差d可被p整除
25.设f(x)是整系数多项式.求证当x是整数时,f(x)的值不全是整数.
26.设A是至多六位数的正整数.其十进位表示是
____________________ ______________________
A=a(n).....a(2)a(1)a(0) 记B=a(0)a(n).......a(2)a(1)
若B=5A,求A
27.求所有的素数a,b使得a^(a+1)+b^(b+1)也是素数
28.设n是一个素数,且n的十进制表示中,各位数码字任意调换之后,仍是素数,求证n的十进位表示中最多含有三个不同的数码字.
29.求证存在无限多个素数p,使不定方程x^2+x+1=py存在整数解x,y
30.求出所有的整数x,y,z满足x+y+z=0,x^3+y^3+z^3=18
竞赛题征解
中学数学挑战题
1、△ABC中,∠A,∠B,∠C的对边长依次为a,b,c,如果∠B=2∠C,则b^2=c(a+c),试证之。设上述△ABC的三边长为三个连续整数,试求所有满足此条件的三角形。
2、证明圆心不共线的三个圆两两相交,三条公共弦共点
3、已知三角形旁切圆半径为r1,r2,r3.求三角形面积
4、一个三角形A1A2A3的旁心为B1,B2,B3
B1B2B3的旁心为C1C2C3
……
求证:经过这样变化后,一定趋为正三角形
5、设H是三角形ABC的垂心
求证:BC/AH+AC/BH+AB/CH=BC/AH*AC/BH*AB/CH
6、求Fibonacci数列和孪生素数数列的公共项(3不算在孪生素数数列里).
7、定义函数G(n)为:具有n个点的平面点集中距离为1的点对的最大个数,
试求出G(n)的上界?
8、一个有乘法的集合S,满足对任意S中的元素a,存在唯一S中的元素b,使得
(1)aba = a
(2)bab = b
(即b是a的广义逆,记做a^)
求证:对S中任意元素a,b,有:a^b^ = (ba)^
9、设椭圆方程位x^2/a^2 + y^2/b^2=1(a>b>0)
问:内接于椭圆的n多边形的最大周长是多少?(n是常数)
10、包含凸形M的中心对称的凸形中面积的最小值为M1
证明:1/2<=M/M1<=1
并给出2个等号成立的条件
11、在平面上有可列个圆,平面上的任意条直线都至少跟其中一个圆相交或相切
求证对任意N都存在一条直线,至少跟N个圆相交
12、某次竞赛中共3道题,每题满分7分.打分可以为0-7间的一个整数.
如果甲的每一题得分均不小于乙,则称甲优于乙.
若这次竞赛没有一个考生优于另一个.问最多有多少考生.
13、一个宴会可能来的人数是a1,a2....或an人。
a1,a2....an为任意的正整数
那么,预先至少要将一块大蛋糕分成几块(每块大小不一定相同),
使得无论参加宴会的是哪个人数,都可以完全均分切好的蛋糕。
14、4维空间R^4中给了16量(允许重复).
其中4个染成红色,4个染成蓝色,4个染成绿色,4个染成纯洁的白色.
(假设)4个红色的向量是R^4的一组基.4个蓝色的向量是R^4的一组基.
绿色白色亦然. 所以总共有四组基,每组基中的向量同色.(求证)可以把这16个向量重新组合,得到新的四组基,使得 每组基中的向量都不同色.
对任意的n证明推广的问题
15、F是特征为p的域,p为素数,c属于F
求证:x^p-x-c在F[x]中是不可约多项式<===>x^p-x-c在F中无根
16、给定m个数列:X1(n),...Xm(n),n=1,2,3,......
给定两组正常数A1,...,Am和B1,...,Bm.
满足:Bi>A1+...+Am-Ai, i=1,...,m.
17、这m个数列的递推关系如下:
1) 初值任意给定;
2) 选定j, 使得Xj(n-1)为X1(n-1),...Xm(n-1)中取值最大,
于是有Xj(n)=Xj(n-1)-Bj, Xi(n)=Xi(n-1)+Ai, i<>j, i=1,...,m
求证:所有m个数列均-->负无穷。
18、a(n) ,n=0,1,2,...是周期为N的数列。满足
1. a(i)=1 或a(i)=-1.
2. Sum[a(n)a(n+k),0<=n<=N-1]=0, when 1<=k<=N-1.
求证:N=4.
19、已知半径为r的圆,另其圆心沿一长度为1的闭曲线连续运动一周,
那么当这条曲线是什么形状时,这个圆扫过的面积取最大值?
20、任意连续n个正整数,总能找到一种方式与1,2,3……n两两配对,使之每对都互质。
21、给定整数a,b,c.定义集合 A={ax^2+bxy+cy^2: x,y为整数}.
假设: 1∈A.
证明: 若p∈A,q∈A,则pq∈A.
22、一个大长方形由有限个至少有一边长为整数的长方形组成,
证明:大长方形至少有一边为整数边。
23、任给平面上4n-3个整点(a,b是非负整数)
则其中存在n个点,它们的重心是整点
24、在三角形ABC中,求证:(1-cosA)(1-cosB)(1-cosC)>=cosAcosBcosC
25、三角形T的三条边上各取一点,得到三个点,以这三个点为顶点的内接三角形记做t,这样t将T分成四个小三角形(包括t本身),证明或者否定:
这个内接三角形t的周长不小于另外三个被它分割成的三个三角形周长中的最小值
26、在直角三角形ABC中,AB为斜边,在射线AC上选择一点D,使得通过直角三角形ABC内心且平行于角ADB平分线的直线与直角三角形BCD内切圆相切,证:AD=BD
27、N->R的函数f
(1)f递增
(2)任意互质的m,n f(mn)=f(m)f(n)
求f
28、如果用同样大小的凸n边形铺满平面
并且每两个凸n边形的交接方式只有下面三种
(1) 有公共点
(2) 只有 一个公共顶点
(3) 只有 一个公共边
那么n<=6
参考资料: 28K 2005-9-16