自己做了 --排列组合--来偷懒,看看有没有可以优化一下的
vb吧
全部回复
仅看楼主
level 5
HadesMyson
楼主
2018年06月03日 08点06分
1
level 5
HadesMyson
楼主
没人吗?
2018年06月03日 08点06分
2
level 15
初音✨七奈
我很好奇你把Variant当成什么意思了
优化建议:不要用最终公式(带阶乘计算的公式)来进行计算,直接用一次循环乘除法就可以得到结果了,比如排列数A(n,m):(注:只要判断n>=m成立即可进行计算,无需进一步区分n和m是否相等)
p=1
for i=n-m+1 to n
p=p*i
next i
组合数C(n,m):(注:n和m可以相等,m还可以等于0呢,排除掉干什么
)
p=1
for i=1 to m
p=p*(n-i+1)\i
next i
2018年06月03日 13点06分
3
HadesMyson
variant不是变体型吗?我不会赋值时就用它可好用了
,0的问题是我忽略了
,反正谢谢大佬教导
2018年06月06日 14点06分
璐村惂鐢ㄦ埛_0748V5Z馃惥
@HadesMyson
能确定数据类型的情况下,尽量不要用变体
2018年06月07日 02点06分
Sunshine_sqh
请问零0和欧o的组合,要求12位,一个有多少个组合?怎么可以得出所有组合?
2020年11月10日 03点11分
level 11
璐村惂鐢ㄦ埛_0748V5Z馃惥
要充分使用自定义函数来增加程序的模块化,既便于编写,又便于阅读。
2018年06月07日 02点06分
4
璐村惂鐢ㄦ埛_0748V5Z馃惥
程序要有必要的注释,不然看的人一头雾水。
2018年06月07日 02点06分
level 5
HadesMyson
楼主
哦(´-ω-`)
2018年06月07日 09点06分
5
level 6
☞Zaoly☜
有,把“出入”改为“输入”
2018年07月13日 11点07分
6
level 6
☞Zaoly☜
很好奇你为什么要把 x, y 定义为 Variant?
2018年07月13日 11点07分
7
level 8
冰之源___
预处理阶乘及其逆元,O(1)查表,
2018年07月14日 09点07分
8
level 1
Sunshine_sqh
请问零0和欧o的组合,要求12位,一个有多少个组合?怎么可以得出所有组合?
2020年11月10日 03点11分
9
初音✨七奈
你挖坟了……其实你这个问题不属于排列组合,如果把字母o换成数字1,你这就是问“12位的二进制数有多少个,每个数分别是多少”
2020年11月10日 03点11分
Sunshine_sqh
@初音✨七奈
😁没太注意时间,不好意思,有方法得出所有组合吗?比如用excel
2020年11月10日 05点11分
初音✨七奈
@Sunshine_sqh
循环穷举,从0循环到2^12-1,把每个数都转换成二进制数(如果不足12位,左边用0补齐),并且把1替换成o,就是结果了
2020年11月10日 07点11分
1