私は、指定されたパーセンタイルをseqから計算するための小さなメソッドを作成しようとしています。それはほとんど..問題はなぜ動作しないのかわかりません。私よりもあなたの「少し賢い」人のひとりが私に助けてくれることを願っていました。パーセンタイル計算器
私は、seqの項目が返された値よりも小さいことをseqから返すという結果になることを期待しています。
def percentile[Int](p: Int)(seq: Seq[Int]) = {
require(0 <= p && p <= 100) // some value requirements
require(!seq.isEmpty) // more value requirements
val sorted = seq.sorted
val k = math.ceil((seq.length - 1) * (p/100)).toInt
return sorted(k)
}
だから
val v = Vector(7, 34, 39, 18, 16, 17, 21, 36, 17, 2, 4, 39, 4, 19, 2, 12, 35, 13, 40, 37)
があると私は私の関数percentile(11)(v)
戻り値は2である。呼び出ししかし、ベクターの10%がIように、11%2以下でない場合、例えば電話しています。
val k = math.ceil((seq.length - 1) * (p/100)).toInt
、特にここに:p/100
percentile(11)(v)
は4
「それはほとんど動作します...動作しません」とはどういう意味ですか?これはパズルになるはずですか?エラーが発生した場合は、エラーを提供してください! – eliasah
エラーはありませんが、返品が間違っている場合があります –