查看: 1798|回复: 1

[已经解决] 为什么用如下代码做不出幂律分布的效果?

[复制链接]
梦石
0
星屑
701
在线时间
511 小时
注册时间
2012-4-8
回帖
193
发表于 2015-4-2 22:58:47 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

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

×
本帖最后由 黑白界 于 2015-4-4 22:49 编辑
  1.      
  2.     lia=[]
  3.     lib=[]
  4.     for i in 0..300
  5.       a=rand(100)
  6.       lia[i]=a
  7.       b=3*a-100
  8.       lib[i]=b
  9.     end      #以上做了两个数列,规模为300,随机取样分布应该符合y=3x-100
  10.     for i in 0..300
  11.       x=lia[rand(300)]
  12.       y=lib[rand(300)]
  13.       yy=360-y      #因为我的显示窗口是360*360的,并且游戏里y坐标方向原本是向下的
  14.       if yy<0      #防止溢出
  15.         yy=1
  16.       end
  17.       self.contents.fill_rect(x,yy,1,1,Color.new(255,255,255))      #画曲线
  18.     end
  19.   end
复制代码
以上代码放到窗口的refresh里,出来的效果是散乱无序的分布
QQ截图20150402230929.png

以下摘自百科,也是我做这个的初衷:
“Zipf定律与Pareto定律都是简单的幂函数,我们称之为幂律分布;
还有其他形式的幂律分布,像名次- 规模分布、规模- 概率分布,
这四种形式在数学上是等价的,其通式可写成y = cx - r ,
其中x, y是正的随机变量,c, r均为大于零的常数.
这种分布的共性是绝大多数事件的规模很小,而只有少数事件的规模相当大. ”

PS:我数学不太好,以上摘的大部分都看不懂,请大神指点
………………………………………………………………………………………………………………………………………………………………………………………………………………
坑爹的百度,是y=cx^(-r),我还以为是什么高深的数学原理呢
武侠|养成|战棋游戏《以武证道》头秃开发中...
开发日记在此
路路 该用户已被删除
发表于 2015-4-3 05:10:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部