对决算法

简介: #include "stdio.h"#include #include #include //this program's file name is Game.

#include "stdio.h"
#include <time.h>
#include <stdlib.h>
#include <string.h>
//this program's file name is Game.cpp
//this program is designed by 200624101101杨振平 on NOV 21th,2008

//define a mem struct
typedef struct mem
{
 int score;
 char name[20];
}mem;

//define the array
mem a[100];

//define a buf array to implement the itoa function
static char buf[12];

//main function
void main()
{
 //define a variable x to store the number of game players
 //define a variable winner to store the infomation of game winner
 int x,winner;
 //call the srand function to generate the random number
 srand((unsigned)time(NULL));
 //define a function which convert a integer to a string
 char *itoa(int i);
 //define the Game function
   int Game(mem r[],int n);

   //print the information for user to input
   printf("Enter the number of game players:");
   scanf("%d",&x);

   //initial the random array
   for(int i=0;i<x;i++)
   {
   a[i].score=60+rand()%40;
   strcpy(a[i].name,"mem");//strcat("mem",(char *)i)
   strcat(a[i].name,itoa(i));
   }
   putchar('/n');
   //print the initial the random array information of game players
   for(i=0;i<x;i++)
   printf("%s:%d/t",a[i].name,a[i].score);
   putchar('/n');putchar('/n');
   //call Game function to get the information of the last winner
   winner=Game(a,x);
   //print the result
   printf("/nthe last winner is %s: %d/n",a[0].name,winner);
}
//implement of Comp function
bool Comp(int mem1,int mem2)
{
 if(mem1>mem2)return 1;
 else return 0;
}
//implement of Game function
int Game(mem r[],int n)
{
 int i=n;
 while(i>1)
 {
  i=i/2;
  for(int j=0;j<i;j++)
   if(Comp(r[j+i].score,r[j].score))
   {
    printf("%s win %s/n",r[j+i].name,r[j].name);
    r[j].score=r[j+i].score;
    strcpy(r[j].name,r[j+i].name);
   }
 }
 return r[0].score;
}
//implement of itoa function
char *itoa(int i)
{
 /* 10 digits + 1 sign + 1 trailing nul */
           char *pos = buf + sizeof(buf) - 1;
           unsigned int u;
           int negative = 0;

           if (i < 0) {
                   negative = 1;
                   u = ((unsigned int)(-(1+i))) + 1;
           }
     else {
                   u = i;
           }

           *pos = 0;

           do {
                   *--pos = '0' + (u % 10);
                   u /= 10;
           } while (u);

           if (negative) {
                   *--pos = '-';
           }

           return pos;
}

目录
相关文章
|
2月前
数十年来首次取得进展,陶哲轩高徒、赵宇飞高徒突破组合数学难题
【9月更文挑战第9天】数十年来,组合数学领域面临诸多未解难题,而近期由陶哲轩与赵宇飞弟子领导的研究团队在Szemerédi定理改进方面取得了突破性进展。这一成果尤其针对k≥5的情况,不仅推进了理论认知,更为解决更高阶的Szemerédi定理提供了新思路。尽管仍有待完善之处,但该研究为组合数学带来了新的希望与方法。论文已发布于[此处](https://arxiv.org/pdf/2402.17995)。
38 5
|
决策智能
博弈论第十七集总结(“声誉和决斗 ”观后感)
博弈论第十七集总结(“声誉和决斗 ”观后感)
50 0
|
机器学习/深度学习 人工智能 算法
史上首次,强化学习算法控制核聚变登上Nature:DeepMind让人造太阳向前一大步
史上首次,强化学习算法控制核聚变登上Nature:DeepMind让人造太阳向前一大步
193 0
|
机器学习/深度学习 人工智能 算法
DeepMind攻克50年数学难题!AlphaZero史上最快矩阵乘法算法登Nature封面(1)
DeepMind攻克50年数学难题!AlphaZero史上最快矩阵乘法算法登Nature封面
272 0
|
机器学习/深度学习 人工智能 算法
DeepMind攻克50年数学难题!AlphaZero史上最快矩阵乘法算法登Nature封面(2)
DeepMind攻克50年数学难题!AlphaZero史上最快矩阵乘法算法登Nature封面
159 0
|
机器学习/深度学习 算法 决策智能
用一盘残局带你了解人工神经网络算法~文末送书!
专栏作者:安可,一名在读研究生,研究领域为强化学习,多智能体协同。喜欢钻研,热爱学习,乐于分享,最重要的还是一位漂亮小姐姐哦~
216 0
用一盘残局带你了解人工神经网络算法~文末送书!
|
人工智能
89岁挑战黎曼猜想的数学家阿蒂亚爵士,去世了……
迈克尔·阿蒂亚爵士是一位亲爱的导师、朋友和榜样,拥有高智商和充沛的精力。他在数学和物理方面所做的贡献将永存于世。
298 0
89岁挑战黎曼猜想的数学家阿蒂亚爵士,去世了……
|
机器学习/深度学习 算法 搜索推荐
细数二十世纪最伟大的10大算法
导读:作者July总结了一篇关于计算方法的文章《细数二十世纪最伟大的10大算法》,此文只是本人对算法比较感兴趣,所以也做翻译,学习研究下。以下是文章内容: 发明十大算法的其中几位算法大师 一、1946 蒙特卡洛方法 [1946: John von Neumann, Stan Ulam, and N...
1380 0
|
算法 量子技术
18岁天才华裔少年用一个经典算法,推翻量子加速神话!
一位年仅18岁的华裔少年提出了一种传统计算机AI算法,其运算速度可以与量子计算比肩,相对之前的传统算法实现了运算速度的指数级增长。这一发现不仅推翻了两位量子计算重量级人物的量子加速神话,而且证明了量子算法和经典算法研究之间存在富有成效的相互作用。
1671 0
|
算法
从一个骗局谈生活中的基础算法
不会分析骗局的程序员不会分析基础算法。
2441 0