根据数字的出现的概率随机生成

今天的做项目用到了 根据数字出现的概率随机生成,看了一些园子里面大哥们的文章,总结一下,

示例:随机生成一个整数,该整数以50%的几率生成1,以40%的几率生成2,以10%的几率生成3。实现的代码如下:

int n5 = r.nextInt(100);

int m; //结果数字

if(n5 < 50){ //50个数字的区间,50%的几率

  m = 1;

}else if(n5 < 90){//[50,90),40个数字的区间,40%的几率

  m = 2;

}else{

  m = 3;

}

另外的一个写法

double num = Math.random();

if(num < 0.5){

  m = 1;

}else if(num<0.9){

  m=2

}else{

  m=3;

}

写法有很多思想都一样

时间: 2024-10-21 11:00:39

根据数字的出现的概率随机生成的相关文章

python内置的一个好玩的函数-zip,并且巧妙的实现按概率随机生成有限个数的字符串。

python有一个比较有意思的内置函数-----zip,可以把传入的两组list进行一个组合变形,再输出子元素为tuple的list,不过变形的方式比较抽象. 举个例子: A=[1,2,3,4,5,6] B=['a','b','c','d'] v1=zip(A,B) v1的结果为: [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')] 比较直观的理解就是,A和B是两道拉链上的扣子,生成的list的子tuple,每一组tuple就是一对扣好了的扣子,并且从每组list的

js选择颜色小游戏(随机生成不含重复数字的数组,通过数组中的数控制定义好的数组)

<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>js网页版小游戏</title> <style media="screen"> .wrap { width: 577px; outline: 1px solid hotpink; margin: 100px auto; box-shadow: 0 0 5px; } .

随机生成数字验证码

protected void Page_Load(object sender, EventArgs e) { // 生成验证码 string checkCode = RandLetter(4); // 把新的验证码保存到Session中 Session["CheckCode"] = checkCode; // 输入验证码 CreateImages(checkCode); } /// <summary> /// 生成验证图片 /// </summary> ///

[CareerCup] 18.3 Randomly Generate Integers 随机生成数字

18.3 Write a method to randomly generate a set of m integers from an array of size n. Each element must have equal probability of being chosen. 这道题让我们从一个数组中随机取出m个数字,要求每个数字被取出的概率相同,其实这道题用的是之前那道18.2 Shuffle Cards的方法,同样我们可以用递归和迭代两种方法来做,递归的思路还用的回溯法,回溯到i+

java定时器Timer,TimerTask每隔一段时间随机生成数字

1:java.util.Timer类是一种工具,线程用其安排以后在后台线程中执行的任务.可安排任务执行一次,或者定期重复执行. 2:TimerTask类是由 Timer 安排为一次执行或重复执行的任务,因为有TimerTask类是一个抽象类,必须有其子类对其实现来完成定时任务的功能. TimerCallClient .java客户端代码: Timercallclient.java代码   package com.skyon.gd.test; import java.util.Timer; /**

Android:随机生成算数四则运算简单demo(随机生成2~4组数字,进行加减乘除运算)

首先创建一个新的Android工程,下面是页面布局: Java代码: 我们先来分析一下如何完成的步骤: 1.首先,先完成生成随机数.(包括随机生成几组数字,范围为多少的数字,四则运算符号等): 2.要完成具体逻辑,先指定随机生成几组数字,然后再排列数字和四则运算符号 下面代码随机生成数字的每种情况只写了一种: private void question() { java.util.Random random=new java.util.Random(); //先指定随机生成几组数字(2~4):

c#随机生成汉字、字母、数字

/// <summary> /// 替换变量 /// </summary> /// <param name="content"></param> /// <returns></returns> public static string replaceBianLiang(string content) { content = content.Replace("{当前时间}", DateTime.N

【JavaScript】随机生成10个0~100的数字

随机生成10个0~100不重复的数字(包含0和100): 需要用到的知识点:随机数 去重 下面放代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script> // 定义声明一个数组, 放随机生成的10个数字 var arr = []; for(var

随机生成数字填充数组

随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中. 设计思路: 1.创建一个数组array[],长度为10. 2.在for循环中调用Math.Random()方法随机生成一定范围内的整数. 3.调用JOptionPane.showMessageDialog()方法将数组元素输出. 4.用for循环将数组元素相加,然后同步骤3. 程序流程图: 源程序代码: //随机生成10个数,填充一个数组,用消息框显示数组内容, //接着计算数组元素的和,将