[過去ログ] 高校数学の質問スレ(医者・東大卒専用) Part438 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
778: 04/10(木)06:36 ID:rUVTD6v0(2/6) AAS
"
コイン9個を3行3列の枠に表を上にして配置する。コインを
1 2 3
4 ? 6
7 8 9
とする。5のコインだけが裏返っており、残りは表が上である。
無作為に1個のコインを選ぶ。選ばれたコインはそのままで、上下左右に隣接するコインを裏返す。
同じコインを複数回選んでもよい。
この操作をn回繰り返した後にすべてのコインが裏返っている確率をQ[n]とする。
n=1,2,...,20の各々でQ[n]を求めよ。
"
B=A
for(i in 1:9) B[i,i]=0
f2=\(i) apply(B,1,\(v) b2n(bitwXor(n2b(i),v)))
M2=matrix(0,ncol=512,nrow=512)
colnames(M2)=0:511
rownames(M2)=0:511
for(i in 0:511) M2[as.character(i),as.character(f2(i))]=1/9
b2n(c(0,0,0,0,1,0,0,0,0)) # 16
solve2=\(n) (M2 %^%n)["16","511"]
solve2=Vectorize(solve2)
m=1:20
cbind(m,solve2(m))
#
flip2 <- function(v) {
# 隣接マップ
li <- list(
c(2, 4), # 1
c(1, 3, 5), # 2
c(2, 6), # 3
c(1, 5, 7), # 4
c(2, 4, 6, 8), # 5
c(3, 5, 9), # 6
c(4, 8), # 7
c(5, 7, 9), # 8
c(6, 8) # 9
)
# 初期状態
state <- rep(0, 9)
state[5] <- 1
for (pos in v) {
# 選ばれた位置と隣接するコインを反転
for (idx in li[[pos]]) {
state[idx] <- 1 - state[idx]
}
}
return(state)
}
sim=\(n,verbose=FALSE){
v=sample(9,n,replace=TRUE)
res=sum(flip2(v))==9
if(verbose & res) cat(v,'\n')
invisible(res)
}
del=replicate(1e3,sim(3,TRUE))
res=numeric()
for(n in 1:20) res[n]=mean(replicate(1e5,sim(n)))
re=solve2(m)
cbind(m,round(re,4),res)
plot(re)
points(res,type='h',col=4,lwd=3)
Qn=solve2(1:100)
par(mar=c(4,4,4,4))
plot(Qn,type='l',xlab='n',ylab='Q[n]')
points(res)
上下前次1-新書関写板覧索設栞歴
あと 224 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.012s