亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python“星條旗”

Python“星條旗”

滄海一幻覺 2021-09-02 16:10:46
我試圖找到所有可能的方法在 k 個孩子之間分發 n 個糖果。例如,根據星條形公式,在 5 個孩子之間分配 96 顆糖果的方法數是100! / (96!*4!) = 3 921 225大小為 5 的所有可能排列的元組。list2 = [item for item in it.product(range(97), repeat = 5)              if sum(item) == 96]我的電腦似乎被復雜性淹沒了。每個元組消耗 24*5 = 120 字節的內存。這導致921 225 * 120 = 470547000字節或 450 mb。好像沒那么多 為什么 PC 生成此列表的速度如此之慢?我錯過了什么?
查看完整描述

2 回答

?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

我看到你的數學有兩個問題。

首先,你在那里描述一個組合。實際上,您正在考慮(96 選擇 5),這并未涵蓋所有排列。

其次,排列實際上是 96!/91!,比約 400 萬高幾個數量級。

只需添加字節數,您現在就處于高 GB的內存使用范圍內,這可以解釋為什么您的機器變慢了;僅由此產生的內存使用量就可以粉碎大多數現代消費機器。


查看完整回答
反對 回復 2021-09-02
  • 2 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號