您的位置:首页 > 编程语言

威佐夫博弈-取石子

2013-04-20 19:20 190 查看
其实我也不太了解这个这个威佐夫博弈,定理的证明也没去过多的了解,只知道,它是一个数列,表示在这两个数一组的一种情况,如,(1,2),(3,5),(4,7).....中表示了先取的败局,可以用

一个黄金分割点来刻画。具体要认懂,去看别人的分析吧,对于学习编程的人,没必要去个个弄懂,这么多理论,要弄懂,并非易事,我们只要知道有这么一回事就行了,怎么用代码去实现它,就ok了。

#include<stdio.h>
#include<math.h>
int main()
{
int n,m;
double p=(sqrt(5.0)+1)/2.0;
while(scanf("%d%d",&n,&m)!=-1)
{
int c=fabs(n-m);                    //求差
n=m>n?n:m;                         //取最小值
if(n==(int)(p*c)) printf("0\n");   //判断最小值是否接近黄金分割点与两个数的差的乘积。
else printf("1\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息