数学算法总结(面积、博弈)

简介: 数学算法总结(面积、博弈)

1、求多边形的面积:

(1)已知顶点坐标:

公式:s=0.5*abs((x1 * y2-x2 *y1)+(x2 *y3-x3 *y2)+、、、+(xn-1 *yn-xn *yn-1))

这个公式不管是凹凸边形或者规则的,不过如果是顺时针输入点就是负的,逆时针就是正的。

例题:http://acm.hdu.edu.cn/showproblem.php?pid=2036`

#include<stdio.h>
double a[106][2];
int main()
{
  int n;
  while(scanf("%d",&n),n!=0)
  {
    for(int i=0;i<n;i++)
      scanf("%lf%lf",&a[i][0],&a[i][1]);  
     a[n][0]=a[0][0];
     a[n][1]=a[0][1];
     double sum=0;
     for(int i=0;i<n;i++)
     sum+=(a[i][0]*a[i+1][1]-a[i+1][0]*a[i][1]);
     sum=sum/2;
     printf("%.1lf\n",sum);
  }
  return 0;
} 

2、博弈算法:

(1) 巴什博奕:只有一堆n个物品,两个人轮流从中取物,规定每次最少取一个,最多取m个,最后取光者为胜。

代码:

#include<stdio.h>
int main()
{
  int n,m;
  while(~scanf("%d%d",&n,&m))
  {
    if(n%(m+1)==0)
      printf("后手胜\n");
    else
      printf("先手胜\n");
  }
  return 0;
}

(2) 威佐夫博弈:有两堆各若干的物品,两人轮流从其中一堆取至少一件物品,至多不限,或从两堆中同时取相同件物品,规定最后取完者胜利。若两堆物品的初始值为(x,y),且x<y,则另z=y-x;记w=(int)[((sqrt(5)+1)/2)*z ];若w=x,则先手必败,否则先手必胜。

代码:

#include<stdio.h>
#include<math.h>
int main()
{
  int n,m,k,t,a;
  while(scanf("%d%d",&n,&m)!=EOF){
    if(n<m){
      a=m;
      m=n;
      n=a;
    }
    k=n-m;
    t=(int)(((sqrt(5)+1)/2)*k);
    if(t==m)
      printf("0\n");
    else
      printf("1\n");
  }
  return 0;
} 

(3)尼姆博弈:有任意堆物品,每堆物品的个数是任意的,双方轮流从中取物品,每一次只能从一堆物品中取部分或全部物品,最少取一件,取到最后一件物品的人获胜。

结论:把每堆物品数全部异或起来,如果得到的值为0,那么先手必败,否则先手必胜。

代码:

#include<stdio.h>
int main()
{
  int n,m,k,temp,i;
  while(scanf("%d",&k)!=EOF){
    temp=0;
    for(i=1;i<=k;i++){
      scanf("%d",&n);
      temp^=n;
    }
    if(temp==0)
      printf("No\n");
    else
      printf("Yes\n"); 
  }
  return 0;
}
相关文章
|
4月前
|
机器学习/深度学习 算法 搜索推荐
【解密算法:时间与空间的博弈】(中)
【解密算法:时间与空间的博弈】
|
4月前
|
存储 算法
【解密算法:时间与空间的博弈】(上)
【解密算法:时间与空间的博弈】
|
3天前
|
算法 调度 决策智能
基于元模型优化算法的主从博弈多虚拟电厂动态定价和能量管理(matlab代码)
基于元模型优化算法的主从博弈多虚拟电厂动态定价和能量管理(matlab代码)
|
4月前
|
存储 算法 编译器
【解密算法:时间与空间的博弈】(下)
【解密算法:时间与空间的博弈】
|
9月前
|
人工智能 算法 Shell
秒懂算法│博弈论
博弈论是二人或多人在平等的对局中各自利用对方的策略变换自己的对抗策略,达到取胜目标的理论。博弈论是研究互动决策的理论。博弈可以分析自己与对手的利弊关系,从而确立自己在博弈中的优势,因此有不少博弈理论,可以帮助对弈者分析局势,从而采取相应策略,最终达到取胜的目的。
159 0
秒懂算法│博弈论
|
9月前
|
人工智能 算法
机器博弈 (三) 虚拟遗憾最小化算法
机器博弈 (三) 虚拟遗憾最小化算法
125 0
|
9月前
|
机器学习/深度学习 人工智能 开发框架
机器博弈 (二) 遗憾最小化算法
机器博弈 (二) 遗憾最小化算法
100 0
|
10月前
|
机器学习/深度学习 传感器 编解码
路径规划算法:基于混沌博弈优化的机器人路径规划算法- 附matlab代码
路径规划算法:基于混沌博弈优化的机器人路径规划算法- 附matlab代码
|
算法
m基于GA遗传优化的多因素加权竞价博弈频谱分配算法matlab仿真
m基于GA遗传优化的多因素加权竞价博弈频谱分配算法matlab仿真
416 0
m基于GA遗传优化的多因素加权竞价博弈频谱分配算法matlab仿真
|
算法
算法学习之路|棋盘问题(博弈)
小明和小红在玩一种棋盘游戏,棋盘的尺寸为n个方格*m个方格。一开始在棋盘的右上角(1,m)放一枚硬币,每次一个人可以将硬币向左、下或左下的方格移动。
2095 0