首页 > 代码库 > 威佐夫博弈
威佐夫博弈
有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。
a b 两堆 a >= b
奇异局势 (a - b) * (1 + sqrt(5)) / 2.0) == a
黄金分割数(1+√5)/2 = 1.618...
1 #include <iostream> 2 #include <cmath> 3 using namespace std; 4 int main(){ 5 int a, b; 6 while(cin >> a >> b){ 7 if(a < b) swap(a, b); 8 int cmp = (a - b) * (1 + sqrt(5) / 2); 9 if(cmp == a){ 10 cout << ‘A‘ << endl; 11 } 12 else cout << ‘B‘ << endl; 13 } 14 }
威佐夫博弈
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。