Cızırtı tarafından atılan olmadan ortalamasını hesaplamak

0 Cevap php

Ben çok numaraları kapalı (yani, 1,2,1,2,3,4,50) tek 50 tüm ortalama kapalı atacağım küçük bir set tarafından atılır olmadan bir ortalama hesaplamak için çalışıyorum.

Ben şöyle numaralarının listesi varsa:

19,20,21,21,22,30,60,60

Ortalama 31

Medyan olduğunu 30

Mod 21 ve bir 60 (ortalama için 40.5)

Ama herkes çoğunluk aralığında 19-22 (3 çıkış, 5) ve sadece büyük aralığı ortalama olsun eğer yukarıdaki numaralardan herhangi daha (büyük bir fark 20.6 olduğunu görebilirsiniz )

Ben bu kadar gibi bu alabilirsiniz düşündüklerim:

c + d-r

c, bir sayı sayısı olduğu yerde, d ayrı değerindedir, ve r aralığıdır. Sonra tüm possble aralıkları bu uygulayabilirsiniz, ve en yüksek puanı bir ortalama almak için omptimal aralığıdır.

(22-19) Örneğin 19,20,21,21,22 5 sayı, 4 ayrı değerleri ve aralık 3'tür olacaktır. Benim denklemi içine bu takarsanız 5 4-3 = 6 olsun

Eğer tüm numara listesine bu uygulandığında ise 8 6-41 = -27 olurdu

Ben bu oldukça iyi çalıştığını düşünüyorum, ama tüm olası aralıkları karşı test etmek için büyük bir döngü oluşturmak zorunda. Sadece benim küçük örnekte 21 olası aralıkları vardır:

19-19, 19-20, 19-21, 19-22, 19-30, 19-60, 20-20, 20-21, 20-22, 20-30, 20-60, 21-21, 21 - 22, 21-30, 21-60, 22-22, 22-30, 22-60, 30-30, 30-60, 60-60

Böyle bir ortalama almak için daha verimli bir yol olup olmadığını merak ediyorum.

Ya da birileri hep birlikte daha iyi bir algoritma varsa?

0 Cevap