Re: [算表] EXCEL的數字排列組合
※ 引述《hwangshan (尿布超人)》之銘言:
: 軟體:Excel
: 版本:2010
: 問題:
: 已知手上有5個數字,分別為1、3、3、9、0,
: 要列出這5個數字的所有排列方式,
: 例如3、1、3、9、0
: 格式如下圖
: https://i.imgur.com/AEBqzSa.png
: 小弟剛接觸excel,還請不吝指教。
老實說,我沒想到答案這麼困難且複雜~
所以我重新發問好了,正才是我真正要問的問題,也許就不需要那麼複雜的計算式~
以數學來表達我的問題的話,就是
A1+A2+A3+A4=16 且 B1+B2+B3+B4+B5+B6=5 ,求A1~A4、B1~B6之所有非負整數解
而應用上,總合值16和總合值5,是由使用者輸入的變數。
非負整數解的個數很簡單,就是H(4,16)乘上H(6,5)
基於此,首先我先思考該怎麼列出所有A1+A2+A3+A4=16的所有非負整數解
翻翻小時候的課本,得知可以等效成這樣規律的方式來找出所有解
11111+1+1111+111111=(5,1,4,6)
+111111+11+11111111=(0,6,2,8)
以此類推
就是把問題變成排列16個"1"和3個"+",之後就能轉換成我要的所有非負整數解了
基於這個邏輯,我昨天才會問那個問題,因為只要有排列函式就能解決了
但是昨天板上大大提供的運算式太難了,我完全不知道該從何修改
所以我在想,也許我是繞了遠路了,這樣把整個問題丟出來也許能得到比較簡單的算法
畢竟實際上,排列的元素只有"1"和"+"這2個
最後,我再次把問題重提一次
以數學來表達我的問題的話,就是
A1+A2+A3+A4=16 且 B1+B2+B3+B4+B5+B6=5 ,求A1~A4、B1~B6之所有非負整數解
而應用上,總合值16和總合值5,是由使用者輸入的變數。
https://i.imgur.com/cLnNBJq.png
PS.其實個人覺得也許VBA會比較容易解決問題,目前小弟正在往VBA研究中
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.1.81
※ 文章網址: https://www.ptt.cc/bbs/Office/M.1537449813.A.859.html
→
09/20 22:45,
5年前
, 1F
09/20 22:45, 1F
解法還是排列啦~
就排列16個"1"和3個"+"的轉換結果,然後每個結果重複H(6,5)次,每個結果的右手邊排列
5個"1"和5個"+"的轉換結果
我覺得應該是這樣解的,然而我卡在排列部分,所以先前才問排列的算法
※ 編輯: hwangshan (220.134.1.81), 09/20/2018 23:18:50
推
09/20 23:35,
5年前
, 2F
09/20 23:35, 2F
推
09/21 00:06,
5年前
, 3F
09/21 00:06, 3F
→
09/21 00:09,
5年前
, 4F
09/21 00:09, 4F
→
09/21 00:10,
5年前
, 5F
09/21 00:10, 5F
→
09/21 00:16,
5年前
, 6F
09/21 00:16, 6F
→
09/21 00:16,
5年前
, 7F
09/21 00:16, 7F
→
09/21 00:20,
5年前
, 8F
09/21 00:20, 8F
→
09/21 00:21,
5年前
, 9F
09/21 00:21, 9F
寫好快~ 我回家再來看看你寫的,謝謝你
※ 編輯: hwangshan (220.134.1.81), 09/21/2018 12:59:05
喔喔!關鍵邏輯真好懂
※ 編輯: hwangshan (220.134.1.81), 09/21/2018 18:43:28
請問,
1.你的choose,那是排列組合中的C取樣吧? 既然你是自己寫的,
代表VBA中沒有該函式囉?
2.你的第一行
Range("D1").Resize(1, 11).EntireColumn.Delete
由於每次計算前都會先清空,導致沒辦法引用這邊計算出來的數字
請問除了將這行隱藏起來之外,有別的辦法嗎?
※ 編輯: hwangshan (220.134.1.81), 09/22/2018 02:48:30
推
09/22 12:54,
5年前
, 10F
09/22 12:54, 10F
→
09/22 12:54,
5年前
, 11F
09/22 12:54, 11F
→
09/22 12:54,
5年前
, 12F
09/22 12:54, 12F
→
09/22 12:57,
5年前
, 13F
09/22 12:57, 13F
→
09/22 12:57,
5年前
, 14F
09/22 12:57, 14F
→
09/22 13:00,
5年前
, 15F
09/22 13:00, 15F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):