首页 > 技术文章 > 将百度百科的机器学习词条中的一段关于机器学习的demo改用Java写了一遍

xinghuangroup 2016-08-18 16:58 原文

这是引用的百度百科中关于机器学习的一段示例,讲述了通过环境影响来进行学习的例子。

下面是代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class JavaX {

    public static void main(String[] args) {
        System.out.println("1+1=2吗?请告诉我!");
        int ladd = 0,radd = 0,aprs = 0,rcnt = 0,wcnt = 0;//定义输入与结果,正确次数与错误次数
        System.out.println("开始学习...");
        for(int i=0;i!=5;i++){
            System.out.println("参数1(必须是1):");//提示输入参数
            try {
                ladd = input(ladd,true);
            } catch (IOException e) {
                System.out.println("参数1 input失败");
                e.printStackTrace();
            }
            
            System.out.println("参数2(必须是1):");//提示输入参数
            try {
                radd = input(radd,true);
            } catch (IOException e) {
                System.out.println("参数2 input失败");
                e.printStackTrace();
            }
            
            System.out.println("结果:"+(ladd + radd));//输出结果
            
            System.out.println("您对这满意吗(满意输入1,不满意输入0):");//评价等级
            
            try {
                aprs = input(aprs,false);
            } catch (IOException e) {
                System.out.println("评价等级 input失败");
                e.printStackTrace();
            }
            
            //判断用户评价
            if (aprs == 1) {
                ++rcnt;
            } else {
                ++wcnt;
            }
            System.out.println("正确次数:"+rcnt+"错误次数:"+wcnt);//错误次数
        }
        
        if(rcnt > wcnt) {//判断学习结果,就是判断回答正确的次数
            System.out.println("主人告诉我1+1=2。");
        } else if(rcnt < wcnt) {
            System.out.println("主人告诉我1+1!=2。");
        } else {
            System.out.println("我不明白主人是什么意思。");
        }
        int term = 0;//退出部分
        System.out.println("您对我的表现满意吗?满意请输入1不满意请输入0:");
        
        try {
            term = input(term,false);
        } catch (IOException e) {
            System.out.println("退出部分 input失败");
            e.printStackTrace();
        }
        
        if (term == 1) {
            System.out.println("谢谢我会继续努力学习");
        } else {
            System.out.println("谢谢我会继续努力学习 D");
        }
    }
    
    public static int input(int oper,Boolean meth) throws IOException {
        
        while(true){
            BufferedReader strin = new BufferedReader(new InputStreamReader(System.in));
            String str = strin.readLine();
            
            try {
                oper = Integer.parseInt(str);
            } catch (NumberFormatException e) {
                System.out.println("字符串转数字异常");
                oper = 0;
            }
            
            if(meth && oper == 1){
                return oper;
            }
            else if(oper==0||oper==1){
                return oper;
            }
            System.out.println("输入错误,请重新输入。");
            
        }
    }
}

 

推荐阅读