需求:某公司有n個人,根據每個人的貢獻不同,按貢獻值給每個人賦予乙個權重。設計一種演算法實現公平的**。
需求分析:按照權重對資料進行選擇。
**實現:
1 deffun(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...