2022秋人工智能实验报告

本报告详细介绍了2022秋季的人工智能实验,涵盖两个实验:百事好合和奥赛罗。在百事好合实验中,通过穷举法和双重循环解决将1到9数字排列组合成100的难题,实验结果显示共有12种解。在奥赛罗游戏中,实现了棋盘局面的处理,包括合法走步的判断和棋子翻转等功能,实验结果与预期一致。
摘要由CSDN通过智能技术生成

2022秋人工智能实验报告

实验名称一:百事好合

实验要求:将 1, 2, 3, 4, 5, 6, 7, 8, 9 这九个数字,不改变顺序,用加减号连起来(允许减
号出现在 1 的前面),使其结果等于 100。请编程输出所有可能的情况,数字和符号之间不
要有空格,如 1+23-4+56+7+8+9=100。总共有 12 种不同的组合。

一、主要思路:

1、模型:

​ 通过对题目进行分析,我们可以在1~9这九个数字之间画上一个空格,填入相应的符号,让这些数字之间的关系变成相加、相减或者连接成为新的高位数,通过判断所填的空的内容是否符合要求来解决问题。这一类的问题都可以通过“填空”进行解决,通过穷举法筛选需要的结果 。

2、算法:穷举法、双重循环、十进制转换三进制

​ 因为考虑到数字1的前面也涉及到了符号的问题,所以首先考虑的是在每个数字前面插上一个空,这样一来九个数字前面就有九个对应的空格需要填充,这样就会涉及到3的9次方种结果,但是在这里面也会包含1前面的连接符,但是1前面是不涉及到连接问题的,所以将1做一个单独的处理,先默认为+1,这样一来,我们所要考虑的就只有8个空格,也就是3的8次方种结果。然后把+1替换成为-1的情况,输出符合的结果。这样一来就大大减少了计算量。

首先设定一个外层循环,这个外层循环用来遍历3的8次方种结果,然后设定一个内层循环用来遍历8个空格,从9前面的空格往后推。这里涉及到怎样把外层循环的i和内层联系起来,保证每个空格的符号一一对应上。每个空格有三种填法:0、1、2代表+、-、连接,也就是三进制的数,将外层的i值转换成三进制的数就可以保证每种结果都被考虑到,然后在这三种情况下对数字进行操作,进行存储。最后判断结果是否符合100,如果是就输出表达式。

对于特殊情况1 ,先用+1进行遍历,然后再进行一次遍历,找到102的结果把+1替换成-1的结果输出。

二、程序实现及优化:

1、程序实现所用头文件解释:

#include :数据的输入输出
#define NUM 6561 :定义常量,表示填8个空的总共种类

#include <memory.h>:清零函数的使用

2、算法伪代码:

for i=0 to NUM do //总共有6561种可能
{
memset(Number, 0, sizeof(int)*9); //初始化函数清零
flag:= i;
for second=9 to 1 do //有8处符号需要判断1_2_3_4… 从后往前推
{
symbol: = flag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值