鱼C论坛

 找回密码
 立即注册
查看: 1851|回复: 5

[已解决]random随机分布函数

[复制链接]
发表于 2017-6-3 10:51:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
大家好,我是新鱼油,我想请教大神们一个问题,random函数中的参数会有好多个吗?比如说,如果要生成随机分布的火柴棒,那么参数有个数,角度,含量,能这样做吗?或者说这个随机分布是python里面的吗?
最佳答案
2017-6-3 10:59:07
random模块下面有好几个函数。给你个博客参考下。
http://blog.csdn.net/xiaocaiju/article/details/6973175

不过像你所说的随机分布的火柴棒,那么应该是把火柴棒做为一个对象,然后把个数,角度,含量这些做为属性。而这些属性的取值用随机数来生成就可以了。和random本身没有太大的关系。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-3 10:59:07 | 显示全部楼层    本楼为最佳答案   
random模块下面有好几个函数。给你个博客参考下。
http://blog.csdn.net/xiaocaiju/article/details/6973175

不过像你所说的随机分布的火柴棒,那么应该是把火柴棒做为一个对象,然后把个数,角度,含量这些做为属性。而这些属性的取值用随机数来生成就可以了。和random本身没有太大的关系。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-3 11:44:50 | 显示全部楼层
每个随机量都可以用随机函数来发生,比如个数可以randint(1, 100) --假设最多100个
角度randint(0, 360),把这些合并起来就有了你需要的火柴棒的随机分布了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-4 10:51:02 | 显示全部楼层
冬雪雪冬 发表于 2017-6-3 11:44
每个随机量都可以用随机函数来发生,比如个数可以randint(1, 100) --假设最多100个
角度randint(0, 360), ...

谢谢你的帮助~我明白的又多一点了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-4 10:58:13 | 显示全部楼层
ooxx7788 发表于 2017-6-3 10:59
random模块下面有好几个函数。给你个博客参考下。
http://blog.csdn.net/xiaocaiju/article/details/69731 ...

谢谢大神~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-4 13:40:40 | 显示全部楼层
ooxx7788 发表于 2017-6-3 10:59
random模块下面有好几个函数。给你个博客参考下。
http://blog.csdn.net/xiaocaiju/article/details/69731 ...

您好def RandomFunc(percent,n,Dispersion,E1, MU1,E2, MU2,size0,x0,y0):
        Mdb()
        ##############################???ú?ú??????????????×?±êxy
        r0=(percent*x0*y0/(n*3.14))**0.5
        r=r0+Dispersion
        x=(x0-2*r+4*r0)*random()+r-2*r0
        y=(y0-2*r+4*r0)*random()+r-2*r0
        xy=[(x,y)]
       
        if(x<r0)and((y-r0)*(y0-r0-y)>0):
                xy.append((x+x0,y))
        elif(x>x0-r0)and((y-r0)*(y0-r0-y)>0):
                xy.append((x-x0,y))               
        elif(y<r0)and((x-r0)*(x0-r0-x)>0):
                xy.append((x,y+y0))
        elif(y>y0-r0)and((x-r0)*(x0-r0-x)>0):
                xy.append((x,y-y0))       
        elif(x<r0)and(y<r0):       
                xy.append((x+x0,y))       
                xy.append((x,y+y0))       
                xy.append((x+x0,y+y0))                       
        elif(x<r0)and(y>(y0-r0)):               
                xy.append((x+x0,y))
                xy.append((x,y-y0))       
                xy.append((x+x0,y-y0))                       
        elif(x>(x0-r0))and(y<r0):               
                xy.append((x-x0,y))       
                xy.append((x,y+y0))       
                xy.append((x-x0,y+y0))       
        elif(x>(x0-r0))and(y>(y0-r0)):       
                xy.append((x,y-y0))       
                xy.append((x-x0,y))       
                xy.append((x-x0,y-y0))       
       
        for i in range(n-1):
                flag=1
                while flag==1:
                        x=(x0-2*r+4*r0)*random()+r-2*r0
                        y=(y0-2*r+4*r0)*random()+r-2*r0
                        flag=0
                        flag2=0
                        flag3=0
                        flag4=0
                        dis2=1000.0
                        dis3=1000.0
                        dis4=1000.0
                        for j in range(len(xy)):,
我还想再请教一下,这个随机分布含有多个参数的,应该怎么建立呢?我找到一个类似的但是不太能看懂·,这是其中的一部分,您能帮我看一下这个意思嘛?谢谢了~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-19 17:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表