高校数学の質問スレ(医者・東大卒専用) Part438 (882レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
777: 2025/04/10(木) 06:36:28.17 ID:rUVTD6v0(1/6)調 AAS
rm(list=ls())
"
コイン9個を3行3列の枠に表を上にして配置する。
無作為に1個のコインを選ぶ。選ばれたコイン及び上下左右に隣接するコインを裏返す。
この操作をn回繰り返した後にすべてのコインが裏返っている確率をP[n]とする。
コインを選ぶ順番は区別する。同じコインを複数回選んでもよい。
"
#
Pn =\(n){
nu=(1-(-1)^n)*(6+4*3^n-4*5^n-7^n+9^n)
de = (2^9*9^n)
gmp::as.bigq(nu,de)
}
#
n2b <- function(num, N=2, digit = 9){
r=num%%N
q=num%/%N
while(q > 0 | digit > 1){
r=append(q%%N,r)
q=q%/%N
digit=digit-1
}
return(rev(r))
}
b2n=\(n) (n %*% 2^(0:8))[1,1]
M=matrix(0,ncol=512,nrow=512)
colnames(M)=0:511
rownames(M)=0:511
a1=c(1,1,0,1,0,0,0,0,0)
a2=c(1,1,1,0,1,0,0,0,0)
a3=c(0,1,1,0,0,1,0,0,0)
a4=c(1,0,0,1,1,0,1,0,0)
a5=c(0,1,0,1,1,1,0,1,0)
a6=c(0,0,1,0,1,1,0,0,1)
a7=c(0,0,0,1,0,0,1,1,0)
a8=c(0,0,0,0,1,0,1,1,1)
a9=c(0,0,0,0,0,1,0,1,1)
A=rbind(a1,a2,a3,a4,a5,a6,a7,a8,a9)
f1=\(i) apply(A,1,\(v) b2n(bitwXor(n2b(i),v)))
for(i in 0:511) M[as.character(i),as.character(f1(i))]=1/9
library(expm)
solve=\(n) (M %^%n)["0","511"]
solve=Vectorize(solve)
n=c(5,7,9,11,13,15,17,19,21)
cbind(n,'P[n]'=solve(n),Pn=as.numeric(Pn(n)))
778: 2025/04/10(木) 06:36:42.87 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)
779: 2025/04/10(木) 06:37:33.82 ID:rUVTD6v0(3/6)調 AAS
rm(list=ls())
"
コイン9個を3行3列の枠に表を上にして配置する。
無作為に1個のコインを選ぶ。選ばれたコイン及び上下左右に隣接するコインを裏返す。
この操作をn回繰り返した後にすべてのコインが裏返っている確率をP[n]とする。
コインを選ぶ順番は区別する。同じコインを複数回選んでもよい。
"
#
Pn =\(n){
nu=(1-(-1)^n)*(6+4*3^n-4*5^n-7^n+9^n)
de = (2^9*9^n)
gmp::as.bigq(nu,de)
}
#
n2b <- function(num, N=2, digit = 9){
r=num%%N
q=num%/%N
while(q > 0 | digit > 1){
r=append(q%%N,r)
q=q%/%N
digit=digit-1
}
return(rev(r))
}
b2n=\(n) (n %*% 2^(0:8))[1,1]
M=matrix(0,ncol=512,nrow=512)
colnames(M)=0:511
rownames(M)=0:511
a1=c(1,1,0,1,0,0,0,0,0)
a2=c(1,1,1,0,1,0,0,0,0)
a3=c(0,1,1,0,0,1,0,0,0)
a4=c(1,0,0,1,1,0,1,0,0)
a5=c(0,1,0,1,1,1,0,1,0)
a6=c(0,0,1,0,1,1,0,0,1)
a7=c(0,0,0,1,0,0,1,1,0)
a8=c(0,0,0,0,1,0,1,1,1)
a9=c(0,0,0,0,0,1,0,1,1)
A=rbind(a1,a2,a3,a4,a5,a6,a7,a8,a9)
f1=\(i) apply(A,1,\(v) b2n(bitwXor(n2b(i),v)))
for(i in 0:511) M[as.character(i),as.character(f1(i))]=1/9
library(expm)
solve=\(n) (M %^%n)["0","511"]
solve=Vectorize(solve)
n=c(5,7,9,11,13,15,17,19,21)
cbind(n,'P[n]'=solve(n),Pn=as.numeric(Pn(n)))
781(1): 2025/04/10(木) 07:08:24.53 ID:rUVTD6v0(4/6)調 AAS
初期値
画像リンク
に設定して検証も可能。
786: 2025/04/10(木) 19:51:35.64 ID:rUVTD6v0(5/6)調 AAS
画像リンク
787: 2025/04/10(木) 20:00:47.44 ID:rUVTD6v0(6/6)調 AAS
画像リンク
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 1.602s*