從 1 100 這 100 個數,按照怎樣的順序排列是最混亂的?

時間 2021-05-31 14:56:07

1樓:很多人

最亂的排列就是沒有排列。考慮所有可能排列的疊加態:每一種排列都是等可能的,每一位出現1-100每個數字的概率都是1/100。

2樓:rotherchild

"混亂度"本身是乙個很主觀的定義。

比如下面相同數字的三種排列方式,哪個混亂程度最低:

對於某些人來說,第乙個混亂程度最低,因為它是圓周率小數點後1~11位。

對於某些人來說,第二個混亂程度最低。這是麻將已經按照順序整理好的一種花色。

對於某個人來說第三個最低,因為這是其手機號碼。

所以,只要題主能給出乙個混亂度量化的標準,相信應該能有演算法找到其最混亂的排列。

3樓:雪山肥胡

最混亂是個有意思的問題

你得定義什麼是混亂

除了以上答主說的演算法偽隨機之類的

從數學的角度說可能是:不包含在任何函式中(題目中的"最沒規律")

那麼從物理的角度(也有人可能認為是化學,無所謂了):

既然1到100原本是個有序數列,那麼我們讓新數列從1讀到100最費勁,不就是最混亂了嗎?

當然了,不能讓人來讀,人是這個世界上差異最大的東西(。。。)

就是每原本相鄰的兩個數字間,在新數列的距離盡可能遠,即為最混亂狀態

那麼我們要怎麼算呢?

我不會......

就像數學不會背叛你,數學不會就是不會

最大值是5050嗎?

因為最遠的兩個數字之間隔著100個距離,然後就再也沒有100這麼遠了,最遠是99,最後是1

或者1,51,2,52...50,100

一共100個51,還是5050

那就是吧,直接想想不出"能級"更高的了

不對跑偏了,就大概是1,100,2,99...就已經足夠混亂了(畫個圈圈詛咒你)

4樓:張傲天

機器學習裡面對於多目標分類任務用交叉熵來衡量分類效能好壞

如果能使這個函式梯度上公升到最大值,是不是能得到最混亂的排列方式?

5樓:自學生

最混亂和最完美的順序時間模型,是兩性時間元素原理模型。自然規律最完美時間順序標準,是核心和空間內外正中半徑球面時間標準模型。人為規則最完美是正方形數學標準,都是兩性時間元素的完美和混亂模型,所以要眾人大家公認正中統一時間標準,才是最正確的統一時間標準原理模奕。

都是一對正反和正中三方統一標準的事物系統原理模型。都是邏輯電路的大腦和電腦,都是手指和鍵盤的正中時間統一標準的最完美順序系統模型。

6樓:何冬州楊巔楊豔華典生

三續論:

但是,在特殊情況(例如原序列為序列的乙個直觀的函式,如為等差數列an+b,或等差數列c^n,以及它們的直觀的復合或疊加)下,可以對函式的區域性進行同餘運算來處理,在必要時結合插值法使用。

對於變數較多時,餘數的意義很容易顯現。例如,

n,1,2,.....,n-1=n-(n,n-1,n-2,...,1) rem n

又,a與N互質時an+b rem N,n=1,2,...,N,所得到的是序列是1,2,...,N的乙個較為良序的重排列。

由於這裡涉及到的運算an+b比較簡單,故我們稱所得的重排列是較為良序的。

五、此外還有必要考慮週期函式或對稱函式。

例如求的通項公式,

以及求這個序列的通項公式。

注意,用對稱的觀點或週期函式的觀點,它們可以有很簡潔的通項公式。

這個是使用插值法不好體現出來的。也應當考慮。

六、補充:參考另一位答題者提到的用某個新序列由最良序列使用對換來生成所需要的對換數,甚至由相鄰元素對換來生成新序列所需要的對換數,我建議,將輪換及輪換的冪也考慮,例如序列經(1,2,3)輪換得到,經兩次(1,2,3)輪換得到。因為,我感覺到,輪換(1,2,3,4,...

,n),...,(1,2,3,4),(1,2,3),(1,2),它們是那樣的相似,對於這幾個輪換運算的複雜程度的差異,似乎也有某種線性運算(測度?)來度量。

七、補充:總之,複雜度或混亂程度,取決於由原序列生成為新序列所需要的運算的複雜程度,及運算中的數值的大小差異,需綜合的、加權的考慮。甚至,將混亂程度定義為乙個向量,乙個複數,允許混亂程度在不同的要求下排序方式不同,允許混亂程度在特定的要求下不可排序,允許混亂程度在某些要求下對稱同級[允許相等的名次]。

注釋:複數可以按先模而又輻角比較來排序,可以按先輻角而後模比較來排序,但僅僅依照輻角或僅僅依照模,則可以有相同名次。如果我們打算找到一條鋪滿平面的曲線(如希爾伯特分形曲線),以沿著曲線的軌跡來對複數進行排序,會怎麼樣?

待研究。

八、補充:考慮到了多種運算,對於原題的研究似乎更複雜了。這正好也說明以上第七項補充說明的意義所在。

我們需要根據應用場景來定義混亂程度,或者給出足夠多的運算,定義運算的複雜性。另外我感覺,我們所稱呼的非初等函式,並不一定比初等函式所指的運算更複雜。再次宣告這裡的第七項補充說明。

7樓:

不知題主有沒有發現自己提問的悖論性:

所以這隱含著數列序本身就十分特別,它取自這些數列「混亂程度」的全域性最大值點。

《資訊簡史》中文版p.324

8樓:Xiao Zhang

如果把混亂/複雜程度用乙個方程 表示,基本上大家都可以認同 . 但是與此同時,如果我們考慮上述三個排列的 (Shannon) entropy (資訊熵)我們可以發現:

既三個排列的entroy是一樣的。當然這個結果是顯然的: (1)如果從 隨機從中選取乙個排列 ,那麼我們很容易得到 對於所有的 都成立。

或者(2)考慮用 個符號來對 做Huffman encoding,因為每乙個符號( )的比重都是相同的,所以optimal encoding就是用相同的數量的bit來encode每乙個符號。

但是是什麼錯覺讓我們覺得 呢?考慮把Eq.(1)中的三個排列表示為下面的排列:

此時我們可以得出:

Rem: 定義為最小的需要從乙個數列裡去除的element的數量而使得剩下的subsequence為上公升(或下降)排序. 考慮Eq.(1)裡的三個排列我們可以得到

Runs:定義為不同的上公升subarray的boundary(邊界)數量。這樣的boundary稱為step-downs(既數列下降的次數)。根據定義可得

這些定義是Donald Knuth在他的經典著作The art of computer programming最早介紹的,而他也是最早考慮怎樣去從理論上給出乙個數列的measure of disorder(或者相反的說measure of presortedness)的人。下面簡單的介紹一下從sorting的角度來看為什麼這樣的定義有意義。

排序的演算法理論裡乙個經典的結論就是對於一般的comparison sort我們可以得到optimal的解是 的lower bound. 但是通常的comparison sort是沒有利用數列本身自帶的一些特性的,比如輸入資料本身自帶的已經sort好的subarray。而adaptive sort就是指可以利用array本身性質來讓排序簡化的一類排序演算法.

現在讓我們來考慮對 使用merge sort進行排序,我們比較兩種方法:(1)傳統的bottom-up方法(2)首先進行 的scan然後找到 和與之相對應的boundary的index,然後直接對每個Run進行merge(第二種方法稱為natural merge sort)。我們可以發現兩種方法有:

Input: [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]

# bottom-up

merge(4): (1,3) (5,7) (9) (2,4) (6,8) (10) # let's assume we split optimally by act of god

merge(4): (1,3) (5,7,9) (2,4) (6,8,10)

merge(4): (1,3,5,7,9) (2,4,6,8,10)

merge(9): (1,2,3,4,5,6,7,8,9,10)

# natural

select runs(9): (1,3,5,7,9) (2,4,6,8,10)

merge(9): (1,2,3,4,5,6,7,8,9,10)

每個步驟後面的括號代表著這個步驟所有的對比的數量。我們發現 N_(\pi_2)" eeimg="1"/>, 為需要sort乙個數列的對比次數。當然這只是個例(其實我們對比 就會發現bottom-up的方法比natural merge還要少乙個comparison),並不能證明第二種方法(natural merge sort)就普遍更優。

但是natural merge sort的概念就是去犧牲space complexity(儲存boundary)來希望得到time complexity的提公升,犧牲select runs進行的比較數量來減少merge時需要進行的比較數量。實際上我們可以證明利用乙個數列的Runs以後adaptive sorting的optimal bound為 。不難想象worse case肯定還是 ,但是對於大多數情況我們可以達到 。

所以類似這樣的方法也被利用於很多程式語言的排序演算法的實現當中,比如timsort.

所以此時我們就有對於乙個排列 ,如果 越小則這個排列從理論上來說就更容易排序,因此Runs就是乙個有意義的排列的disorder的metric。和Runs相類似的還有SMS(Shuffled Monotone Sequence):能夠把原數列partition成的最小的單調(遞增或遞減)的subsequence數量。

與之相似的SMS也可以提供對adaptive sorting algorithms提供一些bound.不難發現 ,所以從某種意義上來說SMS是乙個「finer"的數列混亂程度的metric.而這個方向的研究也就主要著重於怎麼樣能夠提供更加有效,有意義的bound了。

這裡介紹一下我個人認為比較有意思的乙個方法:Bandt and Pompe(2002) 提出的 permutation entropy (排列熵). Permutation entropy最初提出來是為了描述乙個time series(時序數列)或者(chaotic) dynamical system(混沌動力系統)的複雜程度的,但是不難發現從某種意義上來說排列也是乙個time series。

Permutation entropy的定義十分簡單:對於任意乙個 裡的數列/排列,考慮它的m-neighborhood,並把這個neirghborhood轉換為大小的permutation,比如對於 ,我們考慮它的六組2-neighborhood( )並把每個neighborhood轉換為permutation即得到 ,01代表 而10反之。此時我們便可以很容易的利用 作為 的embedding來定義 的permutation entropy:

(3)值得提出的是這個概念其實應該更早在資訊學領域已經由block encoding的概念而引導出來了,而且一些別的領域也有用block entropy這乙個概念。兩者間其實是沒有什麼區別的。但是Bandt and Pompe是最早把permutation entropy應用在chaotic dynamic system中的作者。

根據permutation entropy的定義我們可以來嘗試回答一下所提的問題:當 時,我們可以得到在 的結果下 為 個排列中最混亂的排序之一(此時 的六個permutation/block embedding中包涵所有 的排列中的每乙個.

但是當然需要指出的是permutation entropy也有很多"混亂"的情況沒有能區分。當 時考慮如下兩個排列: 為 中的隨機乙個 ,,我們可以得到下圖( 為排列的normalized index):

(這裡我對 做了 的normalization)但是似乎 更加"混亂" :) ?當然我們可以定義乙個和permutation entropy類似的"skip" permtutation entropy (把neighbor的定義改為排列裡的元素相隔一定距離)可以很明顯的解決這個問題。

但是總而言之我認為這個領域還有很多沒解決的問題,具體的研究還有其他的更有理論支援的measure就交給後人補充吧:)

隨機在1 49中選6個數,把這6個數排列組合,用excel怎麼看看所有出現的情況,演算法怎麼寫?

廬州沈五 以前做過一從選30幾個數中選n個數,其相加之和等x的這樣乙個 sub。僅供參考 提取碼 eijq 張彤 49 48 47 46 45 44 10 068 347 520先說結果,乙個sheet如果你不分多列的話,肯定放不下給個建議,但是我自己沒有嘗試過,把1 49寫成乙個行乙個列,那麼49...

演算法問題,乙個人在1 100中任選乙個數,另乙個人來猜?

100innovate 第二題我感覺需要用到線段樹的知識,猜測每乙個數的成本與數的大小成正比其實是乙個不合理的假設 事實上需要採取一些方法將複雜度轉化。 supersarah 沒有數學驗證,全憑感覺,最近懶得動腦.版本一 對樣本等概率分布,對分查詢 版本二 我們把橫軸由 樣本 換成 猜測成本 那麼,...

存不存在乙個數,從個位開始,每往前加乙個數字之後所得的數依然是素數?

周興海 我也答一下,因為只用int 64,至多算到18位,到了18位的所有可能都列了出來,看來選項不多了。沒用長整型,過幾天改吧。統計一下各種長度,這種質數的個數,顯然一位數的有2,3,5,7計4個. 醬紫君 這樣的素數叫做左截斷素數 1 其中十進位制中最大的是 357686312646216567...