/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
//num[0]=1になる確率
double sum = 0.0;
//num[0]よりあとの位置をいくつ辿るか?
for(int i = 1; i <= 9; i++){
/**
* num[1]~num[9]の9つの位置からi個選び,その位置が小さい方から
* 順番に移動する確率
* 例えば値1を番号0→3→6→0と移動する場合,
* 0番を入れ替え対象としている時に乱数で3を引いて入れ替える(1/10)
* 3番を入れ替え対象としている時に乱数で6を引いて入れ替える(1/10)
* 6番を入れ替え対象としている時に乱数で0を引いて入れ替える(1/10)
* それ以外の時は値1がある場所を選ばないようにする(9/10の7乗)
* これをすべて掛けあわせ,更に9個の位置からi個の位置を選ぶ
* 選び方のパターン数を掛けたものが求める確率の一部となる
*/
double prob
= Math.
pow(0.1, i
+ 1) * Math.
pow(0.9,
9 - i
); sum += combination(9, i) * prob;
}
//0番の時に0番と入れ替わり,それ以降入れ替わらない確率を加える
sum
+= 0.1 * Math.
pow(0.9,
9); System.
out.
println("num[0] = 1となる確率 " + sum
);
//num[0]=2になる確率
sum = 0.0;
for(int i = 1; i <= 8; i++){
//上と同じ.ただし,値2より大きな位置が8箇所であることに注意
double prob
= Math.
pow(0.1, i
+ 1) * Math.
pow(0.9,
9 - i
); sum += combination(8, i) * prob;
}
//0番対象の時に1番が選ばれる確率と,1番対象の時に0番が選ばれる確率
sum
+= 2 * 0.1 * Math.
pow(0.9,
9); System.
out.
println("num[0] = 2となる確率 " + sum
); }
public static int combination (int n, int r){
if(r > n / 2) r = n - r;
int comb = 1, div = 1;
for(int i = 0; i < r; i++){
comb *= n - i;
div *= r - i;
}
return comb / div;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vbnVtWzBdPTHjgavjgarjgovnorrnjocKCQlkb3VibGUgc3VtID0gMC4wOwoJCS8vbnVtWzBd44KI44KK44GC44Go44Gu5L2N572u44KS44GE44GP44Gk6L6/44KL44GL77yfCgkJZm9yKGludCBpID0gMTsgaSA8PSA5OyBpKyspewoJCQkvKioKCQkJICogbnVtWzFdfm51bVs5XeOBrjnjgaTjga7kvY3nva7jgYvjgolp5YCL6YG444Gz77yM44Gd44Gu5L2N572u44GM5bCP44GV44GE5pa544GL44KJCgkJCSAqIOmghueVquOBq+enu+WLleOBmeOCi+eiuueOhwoJCQkgKiDkvovjgYjjgbDlgKQx44KS55Wq5Y+3MOKGkjPihpI24oaSMOOBqOenu+WLleOBmeOCi+WgtOWQiO+8jAoJCQkgKiAw55Wq44KS5YWl44KM5pu/44GI5a++6LGh44Go44GX44Gm44GE44KL5pmC44Gr5Lmx5pWw44GnM+OCkuW8leOBhOOBpuWFpeOCjOabv+OBiOOCiygxLzEwKQoJCQkgKiAz55Wq44KS5YWl44KM5pu/44GI5a++6LGh44Go44GX44Gm44GE44KL5pmC44Gr5Lmx5pWw44GnNuOCkuW8leOBhOOBpuWFpeOCjOabv+OBiOOCiygxLzEwKQoJCQkgKiA255Wq44KS5YWl44KM5pu/44GI5a++6LGh44Go44GX44Gm44GE44KL5pmC44Gr5Lmx5pWw44GnMOOCkuW8leOBhOOBpuWFpeOCjOabv+OBiOOCiygxLzEwKQoJCQkgKiDjgZ3jgozku6XlpJbjga7mmYLjga/lgKQx44GM44GC44KL5aC05omA44KS6YG444Gw44Gq44GE44KI44GG44Gr44GZ44KLKDkvMTDjga435LmXKQoJCQkgKiDjgZPjgozjgpLjgZnjgbnjgabmjpvjgZHjgYLjgo/jgZvvvIzmm7Tjgas55YCL44Gu5L2N572u44GL44KJaeWAi+OBruS9jee9ruOCkumBuOOBtgoJCQkgKiDpgbjjgbPmlrnjga7jg5Hjgr/jg7zjg7PmlbDjgpLmjpvjgZHjgZ/jgoLjga7jgYzmsYLjgoHjgovnorrnjofjga7kuIDpg6jjgajjgarjgosgCgkJCSAqLwoJCQlkb3VibGUgcHJvYiA9IE1hdGgucG93KDAuMSwgaSArIDEpICogTWF0aC5wb3coMC45LCA5IC0gaSk7CgkJCXN1bSArPSBjb21iaW5hdGlvbig5LCBpKSAqIHByb2I7CgkJfQoJCVN5c3RlbS5vdXQucHJpbnRsbihzdW0pOwoJCS8vMOeVquOBruaZguOBqzDnlarjgajlhaXjgozmm7/jgo/jgorvvIzjgZ3jgozku6XpmY3lhaXjgozmm7/jgo/jgonjgarjgYTnorrnjofjgpLliqDjgYjjgosKCQlzdW0gKz0gMC4xICogTWF0aC5wb3coMC45LCA5KTsKCQlTeXN0ZW0ub3V0LnByaW50bG4oIm51bVswXSA9IDHjgajjgarjgovnorrnjocgIiArIHN1bSk7CgkJCgkJLy9udW1bMF09MuOBq+OBquOCi+eiuueOhwoJCXN1bSA9IDAuMDsKCQlmb3IoaW50IGkgPSAxOyBpIDw9IDg7IGkrKyl7CgkJCS8v5LiK44Go5ZCM44GY77yO44Gf44Gg44GX77yM5YCkMuOCiOOCiuWkp+OBjeOBquS9jee9ruOBjDjnrofmiYDjgafjgYLjgovjgZPjgajjgavms6jmhI8KCQkJZG91YmxlIHByb2IgPSBNYXRoLnBvdygwLjEsIGkgKyAxKSAqIE1hdGgucG93KDAuOSwgOSAtIGkpOwoJCQlzdW0gKz0gY29tYmluYXRpb24oOCwgaSkgKiBwcm9iOwoJCX0KCQlTeXN0ZW0ub3V0LnByaW50bG4oc3VtKTsKCQkvLzDnlarlr77osaHjga7mmYLjgasx55Wq44GM6YG444Gw44KM44KL56K6546H44Go77yMMeeVquWvvuixoeOBruaZguOBqzDnlarjgYzpgbjjgbDjgozjgovnorrnjocKCQlzdW0gKz0gMiAqIDAuMSAqIE1hdGgucG93KDAuOSwgOSk7CgkJU3lzdGVtLm91dC5wcmludGxuKCJudW1bMF0gPSAy44Go44Gq44KL56K6546HICIgKyBzdW0pOwoJfQoJCglwdWJsaWMgc3RhdGljIGludCBjb21iaW5hdGlvbiAoaW50IG4sIGludCByKXsKCQlpZihyID4gbiAvIDIpIHIgPSBuIC0gcjsKCQlpbnQgY29tYiA9IDEsIGRpdiA9IDE7CgkJZm9yKGludCBpID0gMDsgaSA8IHI7IGkrKyl7CgkJCWNvbWIgKj0gbiAtIGk7CgkJCWRpdiAqPSByIC0gaTsKCQl9CgkJcmV0dXJuIGNvbWIgLyBkaXY7Cgl9Cn0=