※ 引述《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研究中