高校数学の質問スレ(医者・東大卒専用) Part438 (991レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
763: 132人目の素数さん [sage] 03/25(火)12:07 ID:JvJVqzfB(1/6)
"
赤玉4個、黒玉3個、白玉2個、青玉1個を空箱なしで3つの箱にいれる。
箱を区別しないとき、入れ方は何通りあるか?
"
rm(list=ls())
# vector から remove を除いた残りを返す
fn_rest <- function(vector,remove) Reduce(function(x, y) x[-match(y, x)], remove, init = vector)
fn_rest(c(1,2,2,3,3,3),c(2,3,3))
library(RcppAlgos)
v=rep(1:4,4:1)
pa=partitionsGeneral(10,3,repetition=TRUE) ; pa
pa[1,] # 1 1 8
c1=unique(comboGeneral(v,2)) ; c1
matrix(c("赤","黒","白","青")[c1],ncol=2) |> noquote()
re1=nrow(c1) ; re1
pa[2,] # 1 2 7
c2=unique(permuteGeneral(v,3)) ; c2
ans2=c2[apply(c2,1,\(x) x[2]<=x[3]),] ; ans2
matrix(c("赤","黒","白","青")[ans2],ncol=3) |> noquote()
re2=nrow(ans2) ; re2
pa[3,] # 1,3,6
c3=unique(permuteGeneral(v,4)) ; c3
ans3=unique(t(apply(c3,1,\(x) c(x[1],sort(x[2:4]))))) ; ans3
matrix(c("赤","黒","白","青")[ans3],ncol=4) |> noquote()
re3=nrow(ans3) ; re3
pa[4,] # 1 4,5
c4=unique(permuteGeneral(v,5)) ; c4
ans4=unique(t(apply(c4,1,\(x) c(x[1],sort(x[2:5]))))) ; ans4
matrix(c("赤","黒","白","青")[ans4],ncol=5) |> noquote()
re4=nrow(ans4) ; re4
pa[5,] # 2 2 6
c4=unique(comboGeneral(v,4)) ; c4
ans5=NULL
for(i in 1:nrow(c4)){
c22=c4[i,] ; c22
c2=unique(comboGeneral(c22,2)) ; c2
re22=cbind(c2,t(apply(c2,1, \(x) fn_rest(c22,x)))) ; re22
ans22=re22[apply(re22,1,\(x) sum(c(10,1)*x[1:2]) <= sum(c(10,1)*x[3:4])),] ; ans22
ans5=rbind(ans5,ans22)
}
matrix(c("赤","黒","白","青")[ans5],ncol=4) |> noquote()
re5=nrow(ans5) ; re5
pa[6,] # 2 3 5
c6=unique(permuteGeneral(v,5)) ; c6
ans6=unique(t(apply(c6,1,\(x) c(sort(x[1:2]),sort(x[3:5]))))) ; ans6
matrix(c("赤","黒","白","青")[ans6],ncol=5) |> noquote()
re6=nrow(ans6) ; re6
764: 132人目の素数さん [sage] 03/25(火)12:08 ID:JvJVqzfB(2/6)
pa[7,] # 2 4 4
c8=unique(comboGeneral(v,8)) ; c8
ans7=NULL
for(i in 1:nrow(c8)){
c44=c8[i,] ; c44
c4=unique(comboGeneral(c44,4)) ; c4
re44=cbind(c4,t(apply(c4,1, \(x) fn_rest(c44,x)))) ; re44
ans44=re44[apply(re44,1,\(x) sum(c(1000,100,10,1)*x[1:4]) <= sum(c(1000,100,10,1)*x[5:8])),] ; ans44
ans7=rbind(ans7,ans44)
}
matrix(c("赤","黒","白","青")[ans7],ncol=8) |> noquote()
re7=nrow(ans7) ; re7
pa[8,] # 3 3 4
c6=unique(comboGeneral(v,6)) ; c6
ans8=NULL
for(i in 1:nrow(c6)){
c33=c6[i,] ; c33
c3=unique(comboGeneral(c33,3)) ; c3
re33=cbind(c3,t(apply(c3,1, \(x) fn_rest(c33,x)))) ; re33
ans33=re33[apply(re33,1,\(x) sum(c(100,10,1)*x[1:3]) <= sum(c(100,10,1)*x[4:6])),] ; ans33
ans8=rbind(ans8,ans33)
}
matrix(c("赤","黒","白","青")[ans8],ncol=6) |> noquote()
re8=nrow(ans8) ; re8
(res=c(re1,re2,re3,re4,re5,re6,re7,re8))
sum(res)
765: 132人目の素数さん [sage] 03/25(火)18:57 ID:JvJVqzfB(3/6)
# 総列挙(3箱のうち2箱を表示)
ans1 # 1 1 8
m1=matrix(c("赤","黒","白","青")[ans1],ncol=2)
li1=cbind(m1[,1],'|',m1[,2]) |> noquote() ; li1
ans2 # 1 2 7
m2=matrix(c("赤","黒","白","青")[ans2],ncol=3)
li2=cbind(m2[,1],'|',m2[,2:3]) |> noquote() ; li2
ans3 # 1 3 6
m3=matrix(c("赤","黒","白","青")[ans3],ncol=4)
li3=cbind(m3[,1],'|', m3[,2:4]) |> noquote() ; li3
ans4 # 1 4 5
m4=matrix(c("赤","黒","白","青")[ans4],ncol=5)
li4=cbind(m4[,1],'|', m4[,2:5]) |> noquote() ; li4
ans5 # 2 2 6
m5=matrix(c("赤","黒","白","青")[ans5],ncol=4)
li5=cbind(m5[,1:2],'|', m5[,3:4]) |> noquote() ; li5
ans6 # 2 3 5
m6=matrix(c("赤","黒","白","青")[ans6],ncol=5)
li6=cbind(m6[,1:2],'|', m6[,3:5]) |> noquote() ; li6
ans7 # 2 4 4
m7=matrix(c("赤","黒","白","青")[ans7],ncol=8)
li7=cbind(m7[,1:4],'|', m7[,5:8]) |> noquote() ; li7
ans8 # 3 3 4
m8=matrix(c("赤","黒","白","青")[ans8],ncol=6)
li8=cbind(m8[,1:3],'|', m8[,4:6]) |> noquote() ; li8
766: 132人目の素数さん [sage] 03/25(火)19:45 ID:JvJVqzfB(4/6)
分け方の最初の30通りを列挙
[1,] 赤 | 赤 | 赤 赤 黒 黒 黒 白 白 青
[2,] 赤 | 黒 | 赤 赤 赤 黒 黒 白 白 青
[3,] 赤 | 白 | 赤 赤 赤 黒 黒 黒 白 青
[4,] 赤 | 青 | 赤 赤 赤 黒 黒 黒 白 白
[5,] 黒 | 黒 | 赤 赤 赤 赤 黒 白 白 青
[6,] 黒 | 白 | 赤 赤 赤 赤 黒 黒 白 青
[7,] 黒 | 青 | 赤 赤 赤 赤 黒 黒 白 白
[8,] 白 | 白 | 赤 赤 赤 赤 黒 黒 黒 青
[9,] 白 | 青 | 赤 赤 赤 赤 黒 黒 黒 白
[10,] 赤 | 赤 赤 | 赤 黒 黒 黒 白 白 青
[11,] 赤 | 赤 黒 | 赤 赤 黒 黒 白 白 青
[12,] 赤 | 赤 白 | 赤 赤 黒 黒 黒 白 青
[13,] 赤 | 赤 青 | 赤 赤 黒 黒 黒 白 白
[14,] 赤 | 黒 黒 | 赤 赤 赤 黒 白 白 青
[15,] 赤 | 黒 白 | 赤 赤 赤 黒 黒 白 青
[16,] 赤 | 黒 青 | 赤 赤 赤 黒 黒 白 白
[17,] 赤 | 白 白 | 赤 赤 赤 黒 黒 黒 青
[18,] 赤 | 白 青 | 赤 赤 赤 黒 黒 黒 白
[19,] 黒 | 赤 赤 | 赤 赤 黒 黒 白 白 青
[20,] 黒 | 赤 黒 | 赤 赤 赤 黒 白 白 青
[21,] 黒 | 赤 白 | 赤 赤 赤 黒 黒 白 青
[22,] 黒 | 赤 青 | 赤 赤 赤 黒 黒 白 白
[23,] 黒 | 黒 黒 | 赤 赤 赤 赤 白 白 青
[24,] 黒 | 黒 白 | 赤 赤 赤 赤 黒 白 青
[25,] 黒 | 黒 青 | 赤 赤 赤 赤 黒 白 白
[26,] 黒 | 白 白 | 赤 赤 赤 赤 黒 黒 青
[27,] 黒 | 白 青 | 赤 赤 赤 赤 黒 黒 白
[28,] 白 | 赤 赤 | 赤 赤 黒 黒 黒 白 青
[29,] 白 | 赤 黒 | 赤 赤 赤 黒 黒 白 青
[30,] 白 | 赤 白 | 赤 赤 赤 黒 黒 黒 青
767: 132人目の素数さん [sage] 03/25(火)19:45 ID:JvJVqzfB(5/6)
分け方の最後の30通りを列挙
[1,] 赤 黒 黒 | 赤 黒 青 | 赤 赤 白 白
[2,] 赤 赤 黒 | 黒 白 白 | 赤 赤 黒 青
[3,] 赤 赤 白 | 黒 黒 白 | 赤 赤 黒 青
[4,] 赤 黒 黒 | 赤 白 白 | 赤 赤 黒 青
[5,] 赤 黒 白 | 赤 黒 白 | 赤 赤 黒 青
[6,] 赤 赤 黒 | 黒 白 青 | 赤 赤 黒 白
[7,] 赤 赤 白 | 黒 黒 青 | 赤 赤 黒 白
[8,] 赤 赤 青 | 黒 黒 白 | 赤 赤 黒 白
[9,] 赤 黒 黒 | 赤 白 青 | 赤 赤 黒 白
[10,] 赤 黒 白 | 赤 黒 青 | 赤 赤 黒 白
[11,] 赤 赤 黒 | 白 白 青 | 赤 赤 黒 黒
[12,] 赤 赤 白 | 黒 白 青 | 赤 赤 黒 黒
[13,] 赤 赤 青 | 黒 白 白 | 赤 赤 黒 黒
[14,] 赤 黒 白 | 赤 白 青 | 赤 赤 黒 黒
[15,] 赤 黒 青 | 赤 白 白 | 赤 赤 黒 黒
[16,] 赤 黒 黒 | 黒 白 白 | 赤 赤 赤 青
[17,] 赤 黒 白 | 黒 黒 白 | 赤 赤 赤 青
[18,] 赤 白 白 | 黒 黒 黒 | 赤 赤 赤 青
[19,] 赤 黒 黒 | 黒 白 青 | 赤 赤 赤 白
[20,] 赤 黒 白 | 黒 黒 青 | 赤 赤 赤 白
[21,] 赤 黒 青 | 黒 黒 白 | 赤 赤 赤 白
[22,] 赤 白 青 | 黒 黒 黒 | 赤 赤 赤 白
[23,] 赤 黒 黒 | 白 白 青 | 赤 赤 赤 黒
[24,] 赤 黒 白 | 黒 白 青 | 赤 赤 赤 黒
[25,] 赤 黒 青 | 黒 白 白 | 赤 赤 赤 黒
[26,] 赤 白 白 | 黒 黒 青 | 赤 赤 赤 黒
[27,] 赤 白 青 | 黒 黒 白 | 赤 赤 赤 黒
[28,] 黒 黒 黒 | 白 白 青 | 赤 赤 赤 赤
[29,] 黒 黒 白 | 黒 白 青 | 赤 赤 赤 赤
[30,] 黒 黒 青 | 黒 白 白 | 赤 赤 赤 赤
768: 132人目の素数さん [sage] 03/25(火)20:20 ID:JvJVqzfB(6/6)
mat1=t(apply(ans1,1, \(x) c(x,fn_rest(v,x))))
M1=matrix(c("赤","黒","白","青")[mat1],ncol=10) |> noquote()
L1=cbind(M1[,1],'|',M1[,2],'|',M1[,3:10]) |> noquote() ; L1
mat2=t(apply(ans2,1, \(x) c(x,fn_rest(v,x))))
M2=matrix(c("赤","黒","白","青")[mat2],ncol=10) |> noquote()
L2=cbind(M2[,1],'|',M2[,2:3],'|',M2[,4:10]) |> noquote() ; L2
mat3=t(apply(ans3,1, \(x) c(x,fn_rest(v,x))))
M3=matrix(c("赤","黒","白","青")[mat3],ncol=10) |> noquote()
L3=cbind(M3[,1],'|',M3[,2:4],'|',M3[,5:10]) |> noquote() ; L3
mat4=t(apply(ans4,1, \(x) c(x,fn_rest(v,x))))
M4=matrix(c("赤","黒","白","青")[mat4],ncol=10) |> noquote()
L4=cbind(M4[,1],'|',M4[,2:5],'|',M4[,6:10]) |> noquote() ; L4
mat5=t(apply(ans5,1, \(x) c(x,fn_rest(v,x))))
M5=matrix(c("赤","黒","白","青")[mat5],ncol=10) |> noquote()
L5=cbind(M5[,1:2],'|',M5[,3:4],'|',M5[,5:10]) |> noquote() ; L5
mat6=t(apply(ans6,1, \(x) c(x,fn_rest(v,x))))
M6=matrix(c("赤","黒","白","青")[mat6],ncol=10) |> noquote()
L6=cbind(M6[,1:2],'|',M6[,3:5],'|',M6[,6:10]) |> noquote() ; L6
mat7=t(apply(ans7,1, \(x) c(x,fn_rest(v,x))))
M7=matrix(c("赤","黒","白","青")[mat7],ncol=10) |> noquote()
L7=cbind(M7[,1:2],'|',M7[,3:5],'|',M7[,6:10]) |> noquote() ; L7
mat8=t(apply(ans8,1, \(x) c(x,fn_rest(v,x))))
M8=matrix(c("赤","黒","白","青")[mat8],ncol=10) |> noquote()
L8=cbind(M8[,1:3],'|',M8[,4:6],'|',M8[,7:10]) |> noquote() ; L8
RES=rbind(L1,L2,L3,L4,L5,L6,L7,L8)|> noquote()
nrow(RES)
head(RES,30)
tail(RES,30)
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.053s