数字(0-9)按概率输出

public class InsureServiceRandomUtil  {

    /**
     * 0 道路救援(拖车) 出现的概率为5%
     */
    public static double rate0 = 0.05;
    /**
     * 1 安全检测 出现的概率为5%
     */
    public static double rate1 = 0.05;
    /**
     * 2 代驾服务 出现的概率为55%
     */
    public static double rate2 = 0.55;
    /**
     * 3 年检审车 出现的概率为5%
     */
    public static double rate3 = 0.05;
    /**
     * 4 道路救援(紧急加水) 出现的概率为5%
     */
    public static double rate4 = 0.05;
    /**
     * 5 道路救援(搭电) 出现的概率为5%
     */
    public static double rate5 = 0.05;
    /**
     * 6 道路救援(轮胎充气) 出现的概率为5%
     */
    public static double rate6 = 0.05;
    /**
     * 7 道路救援(送冷却液) 出现的概率为5%
     */
    public static double rate7 = 0.05;
    /**
     * 8 道路救援(更换轮胎) 出现的概率为5%
     */
    public static double rate8 = 0.05;
    /**
     * 9 事故救援(拖车) 出现的概率为5%
     */
    public static double rate9 = 0.05;


    /**
     * Math.random()产生一个double型的随机数,判断一下
     *  例如0出现的概率为5%,则介于0到0.05中间的返回0
     *
     * @return int
     */
    public static int PercentageRandom() {
        double randomNumber;
        randomNumber = Math.random();
        if (randomNumber >= 0 && randomNumber <= rate0) {
            return 0;
        } else if (randomNumber >= rate0 / 100 && randomNumber <= rate0 + rate1) {
            return 1;
        } else if (randomNumber >= rate0 + rate1 && randomNumber <= rate0 + rate1 + rate2) {
            return 2;
        } else if (randomNumber >= rate0 + rate1 + rate2 && randomNumber <= rate0 + rate1 + rate2 + rate3) {
            return 3;
        } else if (randomNumber >= rate0 + rate1 + rate2 + rate3 && randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4) {
            return 4;
        } else if (randomNumber >= rate0 + rate1 + rate2 + rate3 + rate4 && randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4 + rate5) {
            return 5;
        }else if (randomNumber >= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 && randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 +rate6) {
            return 6;
        }else if (randomNumber >= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 + rate6 && randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 + rate6 + rate7) {
            return 7;
        }else if (randomNumber >= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 + rate6 + rate7 && randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 + rate6 + rate7 + rate8) {
            return 8;
        }else if (randomNumber >= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 + rate6 + rate7 + rate8 && randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 + rate6 + rate7 + rate8 + rate9) {
            return 9;
        }

        return -1;
    }
    /**
     * 测试主程序
     *
     * @param agrs
     */
    public static void main(String[] agrs) {
        int i = 0;
        InsureServiceRandomUtil a = new InsureServiceRandomUtil();
        for (i = 0; i <= 100; i++){//打印100个测试概率的准确性
            System.out.println(a.PercentageRandom());
        }
    }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的0-9数字识别的 Java 代码实现,使用的是 TensorFlow 机器学习库: ```java import org.tensorflow.Graph; import org.tensorflow.Session; import org.tensorflow.Tensor; import org.tensorflow.TensorFlow; import java.nio.file.Files; import java.nio.file.Paths; import java.util.List; public class DigitRecognition { public static void main(String[] args) throws Exception { // 读取模型文件 byte[] graphDef = Files.readAllBytes(Paths.get("model.pb")); // 加载 TensorFlow 计算图 Graph graph = new Graph(); graph.importGraphDef(graphDef); // 创建 TensorFlow 会话 Session session = new Session(graph); // 加载测试数据 List<String> lines = Files.readAllLines(Paths.get("test.csv")); float[][] input = new float[lines.size()][784]; for (int i = 0; i < lines.size(); i++) { String[] values = lines.get(i).split(","); for (int j = 0; j < values.length; j++) { input[i][j] = Float.parseFloat(values[j]) / 255.0f; } } // 构造输入 Tensor Tensor<Float> inputTensor = Tensor.create(input); // 运行模型 Tensor<Float> outputTensor = session.runner() .feed("input", inputTensor) .fetch("output") .run() .get(0) .expect(Float.class); // 解析输出 Tensor float[][] output = new float[lines.size()][10]; outputTensor.copyTo(output); // 输出预测结果 for (int i = 0; i < lines.size(); i++) { int prediction = 0; float maxProbability = 0.0f; for (int j = 0; j < 10; j++) { if (output[i][j] > maxProbability) { prediction = j; maxProbability = output[i][j]; } } System.out.println("第 " + (i+1) + " 个样本的预测结果为:" + prediction); } // 关闭 TensorFlow 会话 session.close(); } } ``` 这个代码使用了一个预训练的 TensorFlow 模型文件(`model.pb`),并加载了测试数据文件(`test.csv`)。代码首先读取模型文件并加载 TensorFlow 计算图,然后创建 TensorFlow 会话。接下来,将测试数据转换成输入 Tensor,并使用 `session.runner()` 运行模型,将输入 Tensor 提供给模型,并获取输出 Tensor。最后,解析输出 Tensor,找到每个样本的最大概率值和对应的预测结果,并输出预测结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值