最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

今天,WPS的JS宏戰(zhàn)勝了VBA

2023-03-22 16:01 作者:wils519  | 我要投稿

話不多說,今天被人問了一個簡單的問題:已知有12個人,每4人一組,分成3組,如何將所有可能的分組列到Excel表里?

高中數學痛擊我.jpg

好吧,很容易知道共有C(12,4)*C(8,4)*C(4,4)/A(3,3)共5775種可能性。

自然而然,我們會去EH論壇找大佬求排列組合的VBA代碼,然后腦子就短路了,這VBA寫的遞歸也太。。。占腦子的緩存了,自己寫的時候顧頭不顧腚,怕不是得了老年癡呆。

幸好,我們用過python的itertools,知道有排列組合庫這種巨人的肩膀,另外,前兩天有個重大發(fā)現(xiàn),就是WPS的JS宏可以直接用npm里很多的js模塊,趕快去搜,找到了這個generatorics/generatorics.js at master · acarl005/generatorics · GitHub

很好,只要把js代碼粘貼到WPS宏編輯器的一個模塊里,然后點擊工具-選項-編譯,去掉禁止全局變量的兩個選項,一般的排列組合問題就變成一個for循環(huán)的事了。

比如,有6個公司,每個公司4個部門,要從中選出來自不同公司、不同部門的4人,列出所有可能的組合,就可以這樣:


簡單說就是先對行的“組合”循環(huán),再對列的“排列”循環(huán)即可。

書歸正傳,由于開頭的那個問題是組合嵌套組合,所以還是躲不開要寫遞歸啊,通過學習這個排列組合模塊的寫法,發(fā)現(xiàn)G.combination是一個遞歸的生成器,所以我們在外面再套一層遞歸的生成器即可,就像這樣:

5775行,50毫秒出結果,這一刻我覺得JS宏完勝,當然標題是有點震驚那味了,但僅憑可以使用npm里的大量的js模塊,JS宏覺得值得一用。


最后推薦一些有用的模塊:

6tail的lunar.js,豐富又完善的農歷庫

fastest-levenshtein,編輯距離計算庫,用來模糊匹配不規(guī)范的公司簡寫

lodash,可以拆出功能來用

ramda等等不用多說


今天,WPS的JS宏戰(zhàn)勝了VBA的評論 (共 條)

分享到微博請遵守國家法律
六枝特区| 新民市| 蕲春县| 安宁市| 昌都县| 仁布县| 元朗区| 阜阳市| 宣武区| 长武县| 淮阳县| 怀远县| 峨山| 施甸县| 黎平县| 郧西县| 鄂伦春自治旗| 沅陵县| 海宁市| 温宿县| 安陆市| 侯马市| 理塘县| 五大连池市| 行唐县| 武汉市| 赞皇县| 阳西县| 黔西| 平潭县| 长寿区| 汉沽区| 万载县| 白银市| 嘉禾县| 鄢陵县| 廊坊市| 即墨市| 丰顺县| 安龙县| 旬阳县|