• 闲着也是闲着,自己写歌东西玩一玩,碰碰脑子,简单快乐一点,双人出数的小游戏,后续还带补充


    主旨就是每个人出一个数,目前限制两人,之后考虑多人,然后对其取差值,获取到一个结果,比对结果的奇偶数,还可以看下两人出同一个数的概率,反正概率上是一个比较稳定的。
    当然自己想玩的活也可以做些小手脚,比如奇数的结果固定的某些规则值,放到偶数集合中。
    反正小手脚就自己玩吧

    现在只是加了一个简单的逻辑,后续慢慢扩充吧,有兴趣,就把它弄成一个小网页,放到网站上
    `
    import javax.xml.validation.Validator;
    import java.math.BigDecimal;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Random;
    import java.util.concurrent.CountDownLatch;
    import java.util.concurrent.atomic.AtomicInteger;
    import java.util.stream.IntStream;
    import java.util.stream.Stream;

    public class TwoPerson {

    //创建一个随机数变量
    static final Random random = new Random();
    //偶数
    static final AtomicInteger evenCount = new AtomicInteger();
    //奇数
    static final AtomicInteger oddCount = new AtomicInteger();
    //相同的次数概率
    static final AtomicInteger sameNum = new AtomicInteger();
    //设定的 游戏次数
    static final Long count = 1000000L;
    //创建集合,第n次,相减的差,同时保留两人的数值
    static final Map subPerson = new HashMap<>();
    public static void main(String[] args) {
        int person1 = 0;
        int person2 = 0;
        int sub = 0;
    
        for (int i = 0 ; i < count ; i++){
            person1 = randomInt(0,9);
            person2 = randomInt(0,9);
            sub = person1-person2;
            if (sub < 0){
                sub = -sub;
            }
            Person person = new Person(person1, person2,sub);
            subPerson.put(i,person);
        }
    
    
    
        for (int i: subPerson.keySet()
             ) {
            Person person = subPerson.get(i);
            if (person.getSub() % 2 == 0){
                evenCount.incrementAndGet();
                //得到结果之后就跳出循环,不再执行之后的判断
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    // continue;
    }
    if (person.getSub() % 2 > 0){
    oddCount.incrementAndGet();
    }

            if (person.getSub() == 0){
                sameNum.incrementAndGet();
            }
    
    
        }
    
        //计算概率奇数的概率
        String odd = probability(count, oddCount.longValue());
        System.out.println("奇数的概率:"+odd );
        //计算概率偶数的概率
        String even = probability(count, evenCount.longValue());
        System.out.println("偶数的概率:"+even );
    
        //计算两人出同一个数的概率
        String same = probability(count, sameNum.longValue());
        System.out.println("两人相同的概率:"+same);
    
    }
    //创建一个产生随机数的方法
    private static int randomInt(int i,int j){
    
    
        //获取一个数据流,拿到其中的一个值
        IntStream ints = random.ints(i, j);
    
        return ints.iterator().nextInt();
    
    }
    //计算概率
    private static String probability(Long total,Long n){
        BigDecimal nB = new BigDecimal(n);
        BigDecimal tB = new BigDecimal(total);
        BigDecimal divide = nB.divide(tB);
        return divide+"%";
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    }

    //创建一个对象用于存储值
    class Person{
    private int person1;

    private int person2;
    
    private int sub;
    
    public int getSub() {
        return sub;
    }
    
    public void setSub(int sub) {
        this.sub = sub;
    }
    
    public int getPerson1() {
        return person1;
    }
    
    public void setPerson1(int person1) {
        this.person1 = person1;
    }
    
    public int getPerson2() {
        return person2;
    }
    
    public void setPerson2(int person2) {
        this.person2 = person2;
    }
    public Person (int person1,int person2,int sub){
        this.person1 = person1;
        this.person2 = person2;
        this.sub = sub;
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    }

    `

  • 相关阅读:
    工作流---流程变量
    【C++技能树】Lambda表达式
    【华为OD机试真题 JS】求满足条件的最长子串的长度
    “WingChunTechnique “app Tech Support(URL)
    Leo赠书活动-06期 【强化学习:原理与Python实战】文末送书
    达梦数据库安装和使用
    AJAX学习笔记5同步与异步理解
    机器学习笔记 - 了解常见开源文本识别数据集以及了解如何创建用于文本识别的合成数据
    Keil MDK下如何设置非零初始化变量 - 基于Arm Compiler 6
    架构设计流程:架构到底是指什么?
  • 原文地址:https://blog.csdn.net/wenquan19960602/article/details/133914787