2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

クイズ

Posted at

##問題

0829.png

##回答
1個塗るとき、白マス8個の前後と間計9か所に、黒マスを1個入れればよい。
$$\binom{9}{1}=9$$
2個塗るとき、白マス7個の前後と間計8か所に、黒マスを2個入れればよい。
$$\binom{8}{2}=28$$
k個塗るとき、白マス9-k個の前後と間計9-k+1か所に、黒マスをk個入れればよい。
$$\binom{10-k}{k}$$

黒マス 白マス 通り数
1 8 9
2 7 28
3 6 35
4 5 15
5 4 1
Total 88

##Rで検証してみよう

> event.all <- expand.grid( c(0,1), c(0,1), c(0,1), c(0,1), c(0,1), c(0,1), c(0,1), c(0,1), c(0,1) )
> # 白か黒か、白は0 黒は1
> exam <- matrix( 0, nrow(event.all), ncol(event.all)-1 )
> for ( i in 1:(ncol(event.all)-1) ) {
+   exam[,i] <- event.all[,i] * event.all[,i+1]
+ }
> # 隣の列と掛け算をする。黒マスが連続出る場合、積が1となる。連続でない場合、積が0となる。

> sum( apply(exam, 1, sum) == 0 ) - 1
[1] 88
> # 積の和が0であれば、連続に塗られていない。値が0である数kは全通りの数である。少なくとも1つの黒マスを塗るので、k-1は答えとなる。

##コード

code.r
event.all <- expand.grid( c(0,1), c(0,1), c(0,1), c(0,1), c(0,1), c(0,1), c(0,1), c(0,1), c(0,1) )
# 白か黒か、白は0 黒は1

exam <- matrix( 0, nrow(event.all), ncol(event.all)-1 )

for ( i in 1:(ncol(event.all)-1) ) {
  exam[,i] <- event.all[,i] * event.all[,i+1]
}
# 隣の列と掛け算をする。黒マスが連続出る場合、積が1となる。連続でない場合、積が0となる。

sum( apply(exam, 1, sum) == 0 ) - 1
# 積の和が0であれば、連続に塗られていない。値が0である数kは全通りの数である。少なくとも1つの黒マスを塗るので、k-1は答えとなる。
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?