這是確定兩個未排序陣列是否相同的后續問題?
給定兩個未排序的陣列A并且B具有相同數量的不同元素(正整數>0),確定 A 和 B 是否可以重新排列以使它們相同。
我不想實際重新排列元素,只需執行快速且廉價的檢查(如果可能)(我需要在大量此類陣列上執行此操作)。
我正在考慮根據元素的總和和乘積進行檢查。即,如果 1. 和 2. 為真,則 A 和 B 可以重新排列以使它們相同:
a_1 a_2 ... a_n = b_1 b_2 ... b_na_1*a_2*...*a_n = b_1*b_2*...*b_n
然而,這種方法的數學基礎對我來說似乎是不穩定的。有沒有類似的證明,在數學上更嚴格?
uj5u.com熱心網友回復:
根據 Vieta 公式,n 個數字的總和和乘積是具有這些數字的多項式的第二個和最后一個系數(對于符號的變化)。其他系數保持自由,為不同的數字留下了許多可能性。
例如總和 = 3,產品 = 4。
多項式 x3-3x2-21x-4 的根為 -3.19、-0.19634、6.3863。
多項式 x3-3x2-12x-4 的根為 -2、-0.37228、5.3723。
這兩個不同的三元組具有所需的屬性。
附錄:
比較(xa)(xb)...(xz) 的所有展開系數,它們被稱為基本對稱多項式(a b ...z, ab bc ...za, abc bcd .. .zab, ..., ab..z) 足以證明根的相等性,無論順序如何。但我不會推薦這種非常昂貴的方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/510099.html
標籤:数组算法排序
