Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为一个字符生成随机状态,其中高的统计量比低的概率要小。

为一个字符生成随机状态,其中高的统计量比低的概率要小。
EN

Stack Overflow用户
提问于 2016-02-11 01:06:46
回答 2查看 365关注 0票数 2

我正在寻找一种方法,我可以随机生成一个字符的统计(如技能,攻击,防御,.)。让我们来说说我的数据

1-100

现在我想要的是

1- 30 a概率为30% 31 - 50 a概率为45% 51 - 75 a 20%的概率 76-100 a概率为5%

我知道我可能会使用Random类或Math.random(),但不确定如何使用。

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-11 01:16:14

一种选择是在0到100之间生成一个随机数,然后使用一系列if-else语句来确定要为您的字符生成哪些统计数据:

代码语言:javascript
运行
AI代码解释
复制
public void printRandomStats() {
    Random random = new Random();
    int next = random.nextInt(101);

    if (next <= 30) {
        // this will happen 30% of the time
        System.out.println("Generating stats from 1-30");
    } else if (next <= 75) {
        // this will happen 45% of the time
        System.out.println("Generating stats from 31-75");
    } else if (next <= 95) {
        // this will happen 20% of the time
        System.out.println("Generating stats from 76-95");
    } else {
        // this will happen 5% of the time
        System.out.println("Generating stats from 96-100");
    }

    return;
}
票数 1
EN

Stack Overflow用户

发布于 2016-02-11 02:12:00

解决问题的最佳方法是创建一个非一致的概率值列表。然后从这个列表中随机选择一个值。例如:

如果我们有如下清单:

代码语言:javascript
运行
AI代码解释
复制
{5 , 5 , 5 , 5 , 10 , 10 , 10 , 20, 20 ,30} 

我们的可能性会是这样的;

代码语言:javascript
运行
AI代码解释
复制
5 => 40%  ---  10 => 30%  ---  20 => 20%  ---  30 => 10%

您可以使用以下简单的方法实现该解决方案:

代码语言:javascript
运行
AI代码解释
复制
private static int generateStat()
{

    ArrayList<Integer> stats = new ArrayList<Integer>();

    //first parameter is probability and second is the value
    stats.addAll(Collections.nCopies(30, (int)(Math.random()*30))); 
    stats.addAll(Collections.nCopies(45, (int)(Math.random()*20)+30));
    stats.addAll(Collections.nCopies(20, (int)(Math.random()*25)+50));
    stats.addAll(Collections.nCopies(5,  (int)(Math.random()*25)+75));

    return stats.get((int)(Math.random()*100));
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35334911

复制
相关文章
python生成随机数、随机字符、随机字符串
本文是基于Windows 10系统环境,实现python生成随机数、随机字符、随机字符串:
用户7886150
2020/12/22
2.6K0
shell生成随机字符的几种方法
一般在写shell脚本的时候,会有需要生成一些随机字符,比如在写批量生成用户+随机密码的脚本的时候,就会用到随机生成的字符串来作为新建用户的密码。以下的几种方式可以随机生成字符串。当然,还要许多方法都能完成文章标题的目的,这里仅列举出来部分的。 1.使用shell的random变量 [root@virmach ~]# echo $RANDOM 1908 2.使用openssl [root@virmach ~]# openssl rand -base64 8 # 8是8位的意思 K0NYLr0u0Xo= 3
行 者
2018/03/26
13.1K0
Java生成随机字符串的代码
public static String getRandomString(int length) { //length表示生成字符串的长度 String base = "abcdefghijklmnopqrstuvwxyz0123456789"; Random random = new Random(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < length; i++) {
程思扬
2022/01/10
8630
[Golang] 生成随机字符串
这样生成的随机字符串是永久的同样的字符串。 下面,我演进了一个方案,同样是用的math/rand包里的方法来实现的
用户2353021
2020/05/12
8.2K0
VBA实用小程序59: 生成一组随机字符
下面的一段VBA程序可以生成由一组指定个数的随机字符组成的字符串,你可以将其应用到自已的程序中来创建唯一的ID号或者安全密码。
fanjy
2019/10/16
1.3K0
VBA实用小程序59: 生成一组随机字符
Golang 生成随机字符串的高级玩法!
这个世界很简单,复杂的是人。总有那么一波人要搞个大新闻,他们玩的就是人群中的不一样!于是乎,就有了下面这位老哥的高赞回答。
七点一刻
2022/06/14
3.3K0
JS 生成随机字符串
因此,若 size为1(1个字节8位),则最后转化成16进制(4位)时,为2个字符。
4O4
2022/04/25
6.9K0
WordPress 技巧:如何生成随机字符
其实 WordPress 已经自带了随机字符生成函数:wp_generate_password,这个函数原来是用来生成用户默认密码时候用的,但是同样我们也可以用来生成随机字符,他有三个参数:
Denis
2023/04/15
4850
Golang 生成随机数字、随机字符串
生成随机数字 func RandomInt(start int,end int) int{ rand.Seed(time.Now().UnixNano()) random:=rand.Intn(end-start) random = start + random return random } 生成随机字符串 func RandString(len int) string { r := rand.New(rand.NewSource(time.Now().UnixN
IT工作者
2022/03/09
2.6K0
shell生成随机字符串
i=1 while [ i−le10000]doa=‘echo‘ b=echo< /dev/urandom tr -dc 0-9 | head -c6`` echo "b"i=‘expri + 1` done
用户2038009
2021/03/07
1.5K0
php生成随机字符串
1,A 2,D 3,C 4,C 5,D 6,A 7,A 8,B 9,A 10,C 11,C 12,A 13,A 14,C 15,A 16,A 17,D 18,D 19,C 20,C
py3study
2018/08/02
1.5K0
[代码]PHP随机生成字符串
今天QQ上有朋友要于是就写下了这段代码 <?php function code($num =16){ $char =Array('a','b','c','d','e','f','g','h',
雨落凋殇
2019/12/25
1.7K0
python生成随机字符串
import random,string def genRandomString(slen=10): return ''.join(random.sample(string.ascii_let
py3study
2020/01/09
2.5K0
python生成随机字符串
随机事件概率的公理化定义_概率推理
一、公理化定义 即概率的:统计定义、古典定义、几何定义 二、统计定义 1.定义
全栈程序员站长
2022/11/10
8650
随机事件概率的公理化定义_概率推理
LeetCode 478. 在圆内随机生成点(概率)
给定圆的半径和圆心的 x、y 坐标,写一个在圆中产生均匀随机点的函数 randPoint 。
Michael阿明
2020/07/13
1.5K0
LeetCode 478. 在圆内随机生成点(概率)
python生成随机密码或随机字符串
python生成随机密码或随机字符串 import string,random def makePassword(minlength=5,maxlength=25): length=random.randint(minlength,maxlength) letters=string.ascii_letters+string.digits # alphanumeric, upper and lowercase return ''.join([random.choice(letters)
用户7705674
2021/11/02
1.5K0
【翻译】使用Go生成一个随机字符串(密码)
来源: Generate a random string (password) · YourBasic Go https://yourbasic.org/golang/generate-random-string/
Regan Yue
2023/03/30
1.2K0
【翻译】使用Go生成一个随机字符串(密码)
python生成随机密码或随机字符串
python生成随机密码或随机字符串 import string,random def makePassword(minlength=5,maxlength=25): length=random.randint(minlength,maxlength) letters=string.ascii_letters+string.digits # alphanumeric, upper and lowercase return ''.join([random.choice(letters)
用户7365393
2021/11/02
1.6K0
python生成随机密码或随机字符串
python生成随机密码或随机字符串 import string,random def makePassword(minlength=5,maxlength=25): length=random.randint(minlength,maxlength) letters=string.ascii_letters+string.digits # alphanumeric, upper and lowercase return ''.join([random.choice(letters)
代码伴一生
2021/11/03
1.4K0
点击加载更多

相似问题

随机生成和为1的概率

27

生成概率为p的随机图

16

如何生成一个比之前生成的随机数高或低的随机数?

10

随机生成一个整数向量,其总和为N,其中R中的概率向量给定

111

为给定的概率分布生成随机样本

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文