用python實現按權重對N個資料進行選擇

2022-05-21 09:55:55 字數 1156 閱讀 9099

需求:某公司有n個人,根據每個人的貢獻不同,按貢獻值給每個人賦予乙個權重。設計一種演算法實現公平的**。

需求分析:按照權重對資料進行選擇。

**實現:

1 def

fun(n,p):

2 """

3 n 人的編號

4 p 每個人的權重

5

""" 6 my_dict ={}

7 my_sum = 0.0

8 for i in range(100):

9 my_dict[i] = [my_sum, my_sum +p[i]]

10 my_sum +=p[i]

11 #

隨機產生浮點數,表示中獎

12 bingo =random.random()

13 for j in range(100):

14 print

(bingo, my_dict[j])

15 if my_dict[j][0]< bingo < my_dict[j][1]:

16 return

j 17 if

__name__ == "

__main__":

18 import

random

19 n = [i for i in range(1,101)]

20 #

隨機100 個浮點數

21 p1 = [random.random() for _ in range(100)]

22 print

(len(p1))

23 #

二次轉換,保證和為1 排序,假設概率從小到大,與人一一對應

24 p2 = list(sorted([i/sum(p1) for i in

p1 ]))

25 print("

概率和:

", sum(p2))

26 print("

抽中的是:

", fun(n, p2), "號"

)~

個人實現, 不知道對不對

對n個整數用O n 的時間進行排序

1 求得min,max 2 開闢空間 a 0,max min 1 3 if min 0 data i min else data i min 4 for i 0 to n a data i 1 5 index 0 for i 0 to max min if a i 1 data index i in...

用乙個函式實現用選擇法對5個整數按公升序排序

選擇法思想 先選出5個數中最小的數,把它和score 0 交換,這樣a 0 就是5個數中最小的數了 再在剩下4個數 score 1 到score 4 中選出最小的數,把它和score 1 交換,這樣ascore1 就是剩下4個數中最小的數了,也就是5個數中第2小的數了,如此一輪一輪進行下去,每比較一...

用Python實現對Tree樹基本的增刪查詢方法

1 name 當前節點名字 2 parent 父節點物件 3 child 字節點物件 class treenode object def init self,name,parent none super treenode,self init self.name name self.parent pa...