核心要點:類神經網路、AI都是讓電腦運算"儲存好所有可能解",然後逐件篩選去除
所以我們要給AI製作buffer來儲存可能的解
public class ComputerGuess {
public static void main(String[] a)
{
int[] buf = new int[10000]; int ptr=0,ptr2=0,A=0,B=0,AB=0; int[] buf2 = new int[5000];
String gus="";
for(int i=1000;i<=9999;i++)
{
if(fun.CheckSame(String.valueOf(i))==false)
{
buf[ptr]=i;ptr++; /*Java是沒有指標的,但這是資料結構常用的命名法,所以就照寫,實質上是integer*/
}
}
/*!!!*/System.out.println("*Total ptr= "+ptr);
do{
gus = String.valueOf(buf[fun.Rand(0,ptr-1)]);
System.out.println("My guess is "+gus);
A = fun.InputNum("A= ", "");
B = fun.InputNum("B= ", "");
AB = 10*A+B;
ptr2=0;
for(int i=0;i<ptr;i++)
{
if(fun.CountAB(String.valueOf(buf[i]), gus)==AB) /*讓AI的buffer中的資料和所得到的?A?B做比對,以此可以排除更多可能,然後裝進buffer2*/
{buf2[ptr2]=buf[i];ptr2++;}
}
/*!!!*/System.out.println("*Total ptr2= "+ptr2);
for(int i=0;i<ptr2;i++) /*再把buf1當buf3使用,以此循環*/
{buf[i] = buf2[i];}
ptr = ptr2;
}while(A<4);
}
}