離散レベルを持つintを作成するより洗練された方法を見つけようとしています。私の例では6つのレベルしか示されていませんが、私は45のレベルでこれをやりたがっているので、もしelsesなら45を望んではいけません。これが数学で何と呼ばれているのかわからないので、私が探しているものを見つけることができないようです。量子化レベルメソッド
sd = some double value
int level = 0;
if (Double.compare(sd, 0.41) >= 0) {
level = 5;
} else if(Double.compare(sd, 0.25) >= 0) {
level = 4;
} else if(Double.compare(sd, 0.11) >= 0) {
level = 3;
} else if(Double.compare(sd, 0.05) >= 0) {
level = 2;
} else if(Double.compare(sd, 0.02) >= 0) {
level = 1;
}
................
最新のアップデートFYIこれらは私が量子化するために必要な値だった:あなたは、私はもう少し何かを必要と見ることができるように エレガントで使い勝手のよい地図の答え
public static final int[] Levels = {
3100, 3250, 3383, 3517, 3650,
3673, 3695, 3718, 3740, 3760,
3780, 3800, 3820, 3853, 3885,
3918, 3950, 3975, 4000, 4025, 4050
};
各条件は常に前の1/2ですか? – JohnPS
これは単なる例だったので、私はそれを編集して他人には見えないようにしました。 – JPM