最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)基于權重的隨機數(shù)2種方法

 更新時間:2015年04月28日 09:57:17   投稿:junjie  
這篇文章主要介紹了Python實現(xiàn)基于權重的隨機數(shù)2種方法,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下

問題:

例如我們要選從不同省份選取一個號碼,每個省份的權重不一樣,直接選隨機數(shù)肯定是不行的了,就需要一個模型來解決這個問題。
簡化成下面的問題:

 字典的key代表是省份,value代表的是權重,我們現(xiàn)在需要一個函數(shù),每次基于權重選擇一個省份出來
{"A":2, "B":2, "C":4, "D":10, "E": 20}

解決:

這是能想到和能看到的最多的版本,不知道還沒有更高效好用的算法。

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
#python2.7x 
#random_weight.py 
#author: orangleliu@gmail.com 2014-10-11 
 
''''' 
每個元素都有權重,然后根據(jù)權重隨機取值 
 
輸入 {"A":2, "B":2, "C":4, "D":10, "E": 20} 
輸出一個值 
''' 
import random 
import collections as coll 
 
data = {"A":2, "B":2, "C":4, "D":6, "E": 11} 
 
#第一種 根據(jù)元素權重值 "A"*2 ..等,把每個元素取權重個元素放到一個數(shù)組中,然后最數(shù)組下標取隨機數(shù)得到權重 
def list_method(): 
 all_data = [] 
 for v, w in data.items(): 
  temp = [] 
  for i in range(w): 
   temp.append(v) 
  all_data.extend(temp) 
   
 n = random.randint(0,len(all_data)-1) 
 return all_data[n] 
  
#第二種 也是要計算出權重總和,取出一個隨機數(shù),遍歷所有元素,把權重相加sum,當sum大于等于隨機數(shù)字的時候停止,取出當前的元組 
def iter_method(): 
 total = sum(data.values()) 
 rad = random.randint(1,total) 
  
 cur_total = 0 
 res = "" 
 for k, v in data.items(): 
  cur_total += v 
  if rad<= cur_total: 
   res = k 
   break 
 return res 
  
  
def test(method): 
 dict_num = coll.defaultdict(int) 
 for i in range(100): 
  dict_num[eval(method)] += 1 
 for i,j in dict_num.items(): 
  print i, j  
  
if __name__ == "__main__": 
 test("list_method()") 
 print "-"*50 
 test("iter_method()") 

一次執(zhí)行的結果

A 4 
C 14 
B 7 
E 44 
D 31 
-------------------------------------------------- 
A 8 
C 16 
B 6 
E 43 
D 27 


思路:

思路都很原始可以參考下面的連接,還有別的好方法一起交流!!
代碼: https://gist.github.com/orangle/d83bec8984d0b4293710
參考:
http://m.fzitv.net/article/65060.htm
http://m.fzitv.net/article/65058.htm

相關文章

  • 基于python plotly交互式圖表大全

    基于python plotly交互式圖表大全

    今天小編就為大家分享一篇基于python plotly交互式圖表大全,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python?gravis庫實現(xiàn)圖形數(shù)據(jù)可視化實例探索

    python?gravis庫實現(xiàn)圖形數(shù)據(jù)可視化實例探索

    這篇文章主要為大家介紹了python?gravis庫實現(xiàn)圖形數(shù)據(jù)可視化實例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-02-02
  • 使用Python處理非標準JSON的實用方案

    使用Python處理非標準JSON的實用方案

    JSON(JavaScript Object Notation)作為輕量級數(shù)據(jù)交換格式被廣泛使用,但實際開發(fā)中常遇到不符合標準規(guī)范的JSON數(shù)據(jù),本文將探討如何用Python處理這些特殊情況,并提供實用解決方案,需要的朋友可以參考下
    2025-09-09
  • Python實現(xiàn)的統(tǒng)計文章單詞次數(shù)功能示例

    Python實現(xiàn)的統(tǒng)計文章單詞次數(shù)功能示例

    這篇文章主要介紹了Python實現(xiàn)的統(tǒng)計文章單詞次數(shù)功能,結合實例形式分析了Python針對字符串序列的遍歷、計算等相關操作技巧,需要的朋友可以參考下
    2019-07-07
  • 使用Python實現(xiàn)自動編寫word文檔

    使用Python實現(xiàn)自動編寫word文檔

    這篇文章主要為大家詳細介紹了如何使用Python中的python-docx實現(xiàn)自動編寫word文檔,文中的示例代碼講解詳細,感興趣的小伙伴可以參考一下
    2024-12-12
  • Python使用pickle模塊儲存對象操作示例

    Python使用pickle模塊儲存對象操作示例

    這篇文章主要介紹了Python使用pickle模塊儲存對象操作,結合實例形式分析了Python使用pickle模塊針對文件讀寫與轉換的相關操作技巧,需要的朋友可以參考下
    2018-08-08
  • django開發(fā)post接口簡單案例,獲取參數(shù)值的方法

    django開發(fā)post接口簡單案例,獲取參數(shù)值的方法

    今天小編就為大家分享一篇django開發(fā)post接口簡單案例,獲取參數(shù)值的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • django之用戶、用戶組及權限設置方式

    django之用戶、用戶組及權限設置方式

    這篇文章主要介紹了django之用戶、用戶組及權限設置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • python一行代碼合并了162個Word文件

    python一行代碼合并了162個Word文件

    這篇文章主要為大家介紹了python一行代碼合并了162個Word文件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • Pycharm學習教程(1) 定制外觀

    Pycharm學習教程(1) 定制外觀

    這篇文章主要介紹了最全的Pycharm學習教程第一篇如何定制外觀,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05

最新評論

棋牌| 聂拉木县| 綦江县| 兴隆县| 手机| 彩票| 潍坊市| 鹤庆县| 赞皇县| 铁岭市| 肇源县| 鄂温| 汝城县| 区。| 天水市| 昆明市| 五家渠市| 若尔盖县| 虎林市| 洛宁县| 北海市| 疏附县| 上杭县| 济阳县| 宁阳县| 阳东县| 东丰县| 凤城市| 乌鲁木齐县| 凭祥市| 鄂伦春自治旗| 连山| 伊宁县| 辰溪县| 永年县| 蒙阴县| 昌图县| 远安县| 喀喇| 遂川县| 海盐县|