引言:从一个简单的猜拳小游戏来窥探 AI,人们对于 AI 的认知是从什么角度出发的?又是从什么角度对自己来认知的?
–本文参照于《程序是怎么跑起来的》
AI
Artificial Intelligence(英 [ˌɑːtɪˈfɪʃl]人造的 | 英 [ɪnˈtelɪdʒəns] 智力 )
整体思路
1:直觉 、想法 、
2:习惯 、 概率
3:经验 、通过结果进行预测
4:思考方式 、
思考方式是思考方法
的节奏。人类大脑中有类似于“石头、石头、布、剪刀”或“剪刀、石 头、石头、布”这种具有节奏感的短语,人类会在此基础上做出判断,
这就是思考方式。
#include <stdio.h>
#include <stdlib.h>
void main() {
// 表示思考方式的 2 维数组
int pattern[2][4] = { { 0, 0, 2, 1 }, { 1, 0, 0, 2 } };
// 连续输的次数
int lose = 0;
// 用来切换思考方式的变量(0 和 1 之间切换)
int p = 0;
// 根据思考方式决定出拳信息
int n = 0;
// 对手的出拳
int human;
// 计算机的出拳
int computer;
// 设定随机数的种子
srand(time(NULL));
// 重复猜拳
while( -1 ) {
// 对手决定出拳信息
printf(" 石头剪刀 (0= 石头,1= 剪刀,2= 布,其他 = 退出游戏)...");
scanf("%d", &human);
printf(" 布 \n");
// 输入 0、1、2 以外的数值时游戏结束
if(human < 0 || human > 2) break;
// 计算机决定出拳信息
computer = pattern[p][n];
n = (n + 1) % 4;
// 输出计算机的出拳信息
if (computer == 0) {
printf (" 计算机的出拳是:石头 \n");
} else if( computer == 1 ) {
printf (" 计算机的出拳是:剪刀 \n");
} else {
printf (" 计算机的出拳是:布 \n");
}
printf("\n");
// 记录计算机连续输拳的次数
if ((human == 0 && computer == 1) ||
(human == 1 && computer == 2) ||
(human == 2 && computer == 3)) {
lose ++ ;
} else {
lose = 0;
}
// 连续输拳时变换思考方式
if (lose >= 2) {
p = (p + 1) % 2;
n = 0;
}
}
}
确实对程序的整体运行模式有了更多的了解,计算机看上去不像个黑盒子了,在进行平常的电脑操作时,也许会深入到操作系统层面去进行思考,似乎多了一层看不见的东西
– 威少