3

n個の要素の配列があり、n個の要素のうち、他の要素よりもはるかに大きい数があるとします。

だから、私は持っているかもしれません:

16, 1, 1, 0, 5, 0, 32, 6, 54, 1, 2, 5, 3

この場合、、、に興味が32あり16ます54

または、私は持っているかもしれません:

32, 105, 26, 5, 1, 82, 906, 58, 22, 88, 967, 1024, 1055 

この場合、、、、に興味が1024あります。9069671055

関心のある数を抽出する関数を作成しようとしています。問題は、「はるかに大きい」ものを決定するためのしきい値を定義できないことxです。また、関数が呼び出される対象によって両方が異なるため、最大数を取得するように指示することはできません。

私は少し立ち往生しています。誰かがこれを攻撃する方法を知っていますか?

4

3 に答える 3

3

私だったら、もう少し統計的な洞察を使用します。そうすれば、将来的にコードの柔軟性が最大になります。

x           = [1 2 3 2 2 1 4 6 15 83 2 4 22  81 0  8 7 7 7 3 1 2 3]
EpicNumbers = x( x>(mean(x) + std(x)) )

次に、標準偏差の数を増やしたり減らしたりして、しきい値を広げたり狭めたりすることができます。

LessEpicNumbers = x( x>(mean(x) + 2*std(x)) )
MoreEpicNumbers = x( x>(mean(x) + 0.5*std(x)) )
于 2012-05-08T18:52:52.243 に答える