关于python随机数的问题。。

JustSt 发布于 2014/04/16 17:51
阅读 267
收藏 0

现在正在看像计算机科学家一样思考Python。。。。

刚看到随机数的章节。。。有一道练习是让我先根据传入的单词,或者list,然后来算单词中的letter的frequency或者是list中元素的frequency,然后把他们放进一个dictionary中,把letter或者list中的元素map到他们对应出现的frequency上。。。。

第二部分, 接下来是要根据frequeny,成比例地随机返回一个值。。。请教一下这个怎么返回。。。

第一部分地函数: 

def histogram(t):
    new_dictionary = {}
    for c in t:
        new_dictionary[c] = new_dictionary.get(c, 0) + 1
    return new_dictionary



加载中
0
红薯说愿闻其翔
红薯说愿闻其翔
计算newdic的所有value的和,为total,新建一个字典map{},其key是对应newdic的value/total…再加上上一个数的key。比如 i=0 for x in newdic.key: map[key]=n+ newdic[x]/total may[value]= x n=n+ newdic[x]/total 然后产生一个0~1的随机数,在map中对应的就是letter 或者list
JustSt
JustSt
回复 @柳岩的球迷 : HMMM, 大致解决了...我用了TUPLE把范围放在了KEY里面..然后用RANDOM去返回在范围里面所对应的VALUE...也就是那个字母..谢啦
JustSt
JustSt
回复 @柳岩的球迷 : 麻烦你用代码格式写出来好吗?看得有点糊涂..如果你每次都把之前的new_dict里的value/total加到下一个的key中间..那么最后一个一个不是就是1么?
红薯说愿闻其翔
红薯说愿闻其翔
就是的啊,相当于吧第一部分单词影射到0~1的范围内
JustSt
JustSt
有点没看懂。。。。我的意思是想通过第一部分字母出现的频率,然后按照比例的返回那个字母。。。比如说'a'出现了2次,'b'出现了1次。一共是3次。然后a有66%的可能性返回,b有33%的可能性返回。。
0
JustSt
JustSt

求回复啊~~~

0
红薯说愿闻其翔
红薯说愿闻其翔
不用谢~\(≧皿≦)/~
返回顶部
顶部