| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1586 人关注过本帖
标题:没事就折腾一下,各位大大有没有写过一定范围内按比例出随机数?
只看楼主 加入收藏
shonken
Rank: 2
等 级:论坛游民
帖 子:116
专家分:26
注 册:2017-1-15
结帖率:90%
收藏
已结贴  问题点数:20 回复次数:21 
没事就折腾一下,各位大大有没有写过一定范围内按比例出随机数?
如:随机0~100的整数,0~30占70%,31~80占10%,81~100占20%这样?
搜索更多相关主题的帖子: 随机数 随机 范围 整数 
2022-12-14 09:43
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:3 
随机0~100的整数要多少个?
2022-12-14 10:13
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:3 
用循环来获取随机数,符合要求的则保留,不符合要求的则放弃不用,直至获得需要数量的随机数。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2022-12-14 10:23
shonken
Rank: 2
等 级:论坛游民
帖 子:116
专家分:26
注 册:2017-1-15
收藏
得分:0 
以下是引用吹水佬在2022-12-14 10:13:23的发言:

随机0~100的整数要多少个?


暂没具体的应用场景,可以假设一下

随机0~100的整数,假设需要50个数,其中0~30占70%的机率,31~80占10%的机率,81~100占20%机率,数可以重复。
2022-12-14 11:23
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:789
专家分:1165
注 册:2021-10-13
收藏
得分:3 
你这是伪随机啊,直接0-30  35个。31-80  5个。剩下的10个!
2022-12-14 11:36
shonken
Rank: 2
等 级:论坛游民
帖 子:116
专家分:26
注 册:2017-1-15
收藏
得分:0 
以下是引用sam_jiang在2022-12-14 11:36:49的发言:

你这是伪随机啊,直接0-30  35个。31-80  5个。剩下的10个!


有所侧重,想起一个场景可用,就像汉字库,排前的常用字,排后的生僻字,随机挑选时希望得到常用字多些
2022-12-14 11:47
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:789
专家分:1165
注 册:2021-10-13
收藏
得分:0 
那我觉得你可以转换思路,建一个表来记录用户的输入习惯,记录用户最常使用的10个字,当用户输入拼音时,调取最常用的10个字。目前市面上流行的输入法都是用这种办法!对于新用户,你只需要按笔画顺序推送候选字就可以了。这种方法非常精准!
2022-12-14 15:15
cjc1010
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:65
专家分:195
注 册:2006-4-16
收藏
得分:3 
s1 取0-100
case s1<=10
   s2 取31-80
case s1>10 and s1<30
   s2 取80-100
other
   s2取0-30
这样可合你意?
2022-12-14 15:26
shonken
Rank: 2
等 级:论坛游民
帖 子:116
专家分:26
注 册:2017-1-15
收藏
得分:0 
以下是引用cjc1010在2022-12-14 15:26:38的发言:

s1 取0-100
case s1<=10
   s2 取31-80
case s1>10 and s1<30
   s2 取80-100
other
   s2取0-30
这样可合你意?


差不多这个样子,如果是自定义比例呢?
2022-12-14 17:33
shonken
Rank: 2
等 级:论坛游民
帖 子:116
专家分:26
注 册:2017-1-15
收藏
得分:0 
谢谢以上各位大大帮我理清思路

交个作业

程序代码:
clea
nMin1 = 31
nMax1 = 80
nMin2 = 81
nMax2 = 100
nMin3 = 0
nMax3 = 30
nResult = 0
lcResult = ""
For i = 0 To 100
    nRang = Int((100 - 0 + 1) * Rand( ) + 0)

    Do Case
        Case nRang <=10
            nResult = Int((nMax1 - nMin1 + 1) * Rand( ) + nMin1)
        Case Between(nRang,11,30)
            nResult = Int((nMax2 - nMin2 + 1) * Rand( ) + nMin2)
        Otherwise
            nResult = Int((nMax3 - nMin3 + 1) * Rand( ) + nMin3)
    Endcase
    lcResult = lcResult + Transform(nResult)+","
Endfor
?lcResult
2022-12-14 17:34
快速回复:没事就折腾一下,各位大大有没有写过一定范围内按比例出随机数?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028498 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved