我們知道,排序功能,List中有、Table中也有,單純的數(shù)字排序在我們這個(gè)問題沒用意義,我們需要生成一列于字符串等長的隨機(jī)數(shù),然后通過表格排序隨機(jī)數(shù),實(shí)現(xiàn)字符的隨機(jī)排列 。
我們會(huì)用到函數(shù):
· Text.ToList:將字符串變成列表
· List.Random:生成隨機(jī)數(shù)列表
· List.Count:列表元素計(jì)數(shù)
· Table.Sort:表排序
· Text.Combine:文本合并
這過程中,還需要有表格轉(zhuǎn)換函數(shù),是使用Recoard.ToTable、還是Table.FormColumns?
Recoard.ToTable我們用字符作為Record的Name,隨機(jī)數(shù)作為Record的Value,然后轉(zhuǎn)換成表格,排序?qū)崿F(xiàn)隨機(jī)排列,下面分步來做:
Text.ToList:

同樣長度的隨機(jī)數(shù)列表:

組成Record:

轉(zhuǎn)成表格:

Value列排序:

提取Name列合并文本:

似乎很順利就完成了,字符串內(nèi)部的亂序,我們修改一下數(shù)據(jù)源看看:

看看能不能實(shí)現(xiàn)亂序:

“無邊落木蕭蕭下”,Record的Name不能重復(fù),所以報(bào)錯(cuò) 。
所以上面的過程適合非重復(fù)字符串的亂序 。如果有重復(fù)的字符,我們還需要修改我們的過程 。
添加列的方式行不通,我做過測(cè)試,先把字符列表轉(zhuǎn)換成表格,然后添加隨機(jī)數(shù)列,即使指定了數(shù)據(jù)類型,也無法實(shí)現(xiàn)排序:

所以這個(gè)隨機(jī)數(shù)列,需要在組表之前就生成,不能后添加 。
Table.FormColumns用之前做過的字符串列表與隨機(jī)數(shù)列表組成表格:

排序:

我們整理一下,把文本合并:

即使是標(biāo)點(diǎn)符號(hào)重復(fù),也不要緊,都能實(shí)現(xiàn)整個(gè)字符串內(nèi)的字符隨機(jī)排列 。
【排列組合Cn和An公式 隨機(jī)排列公式】我們總結(jié)一下,最后這種方法更通用一些,要注意的地方就是隨機(jī)數(shù)的生成,必須是在表格生成之前,如果是后添加的隨機(jī)數(shù)列,不能排序,具體啥原因咱也不了解 。
推薦閱讀
- 內(nèi)部收益率的計(jì)算例題 內(nèi)部收益率計(jì)算公式是什么
- 綠豆的功效和作用
- 瘦腿有哪些方法和注意事項(xiàng)呢
- 水流速度的公式 水在管道中的流速怎么計(jì)算?
- 理財(cái)投資入門與技巧 個(gè)人理財(cái)有哪些基本原理和方法?
- 失眠神經(jīng)衰弱怎么調(diào)理 神經(jīng)衰弱和失眠有關(guān)系嗎?
- 是什么導(dǎo)致的宮頸癌
- 水果是怎么熟的
- 韭菜不宜和什么一起吃呢
- 電池容量和充電功率換算 手機(jī)充電功率計(jì)算公式
