平成14年12月31日
[流れ星]
第110回数学的な応募問題解答
<解答募集期間:12月15日〜12月31日>
[条件つき自然数]
* 太郎さんは、生徒と一緒に大学入試問題を眺めていたところ、東京大学に出ていた次のような問題をみつけました。
そこで、アレンジして出題しましたから、皆さん、チャレンジください。
NO1「H7K」さん 12/14: 22時35分 受信 更新12/31
Sの要素のうち,nケタのもののみを集めた集合をT_nとすると,
# T_n=(5Pn *2^n - 4P(n-1) *2^(n-1) )
が成立する.(証明は,言葉で説明できるかたちにまだなっていませんので,後でまた.)
(1) #T_1=5*2-1*1=9 (0を含む場合) 9-1=8 (0を含まない場合)
(2) #T_2=20*4-4*2=72
(3) #T_3=60*8-12*4=480-48=432
(4) #T_4=120*16-24*8=1920-192=1728
(5) #T_5=120*32-24*16=3456
(6) 眠い,たるい,また後日.
<水の流れ> 実は5桁までしかできません。後は題意に反します。
「H7K」さん 12/15: 10時34分 受信 更新12/31
(0,9)(1,8)(2,7)(3,6)(4,5)のペアがあってはいけないということですから,
もちろん6ケタ以上はダメですね.
(6) T_4までが9+72+432+1728=75+432+1728=513+1728=2241,
T_3までが9+72+432=513なので,2003番目は4ケタ.
2003-513=1490,1728/9=192, 1344=192*7<1490=1344+146<1536=192*8より
2003番目は8xxxとかけるやつの146番目.
192/8=24, 24*6<146<24*7より,2003番目は87xxとかけるやつの2番目.
このような数は,8704.
NO2「toru」さん
12/17: 11時34分 受信 更新12/31
(1)題意より1〜9の9個
(2)10の位は1〜9の9通り、それぞれに対して、1の位は0〜9の10通りから自身とたして9になるものの2つを除いて8通り。
よって 9X8=72個
(3)100の位は1〜9の9通り、それぞれに対して、10の位は0〜9の10通りから自身とたして9になるものの2つを除いて8通り。
更に1の位は、100位と10位の数自身と、足して9になるものを除いた6通り。 よって 9X8X6=432個
(4)1000の位は1〜9の9通り、それぞれに対して、100の位は0〜9の10通りから自身とたして9になるものの2つを除いて8通り。
10の位は、1000位と100位の数自身と、足して9になるものを除いた6通り。
更に1の位は1000位と100位と10位の数自身と足して9になるものを除いた4通り。
よって 9X8X6X4=1728個
(5)10000の位は1〜9の9通り、それぞれに対して、1000の位は0〜9の10通りから自身とたして9になるものの2つを除いて8通り。
100の位は、10000位と1000位の数自身と、足して9になるものを除いた6通り。
10の位は10000位と1000位と100位の数自身と足して9になるものを除いた4通り。
更に1の位は10000位と1000位と100位と10位の数自身と足して9になるものを除いた2通り。 よって9X8X6X4X2=3456個
(6)2003=9+72+432+1490 (1)〜(5)と合せて考えると2003番目は4桁の1490番目。
4桁の数の内1000の位が1〜9のものはそれぞれ8X6X4=192個
1490=192X7+146だから1000の位が8の146番目、
この時100の位0、2〜7、9の8通りにそれぞれ6X4=24個、
146=24X6+2だから求める数は1000位が8、100位が7のものの内、下から2番目の数ということになり、 これは 8704
ペンネーム toru
NO3「浜田」さん 12/18: 09時57分 受信 更新12/31
今回はCで解きました.
(1) 1桁9個
(2) 2桁72個
(3) 3桁432個
(4) 4桁1728個
(5) 5桁3456個
(6) 2003番目8704
ちなみに6桁のものは0個であることも求めるようになっています.
/* 110.c */
#include<stdio.h>
#include<conio.h>
#define KETA 6
static int KOTAE0=0;
static int KOTAE;
static int KOTAE6;
void check(int m,int n,int a[]);
int dame(int n,int a[]);
void main(){
int m,a[KETA+1];
for(m=1;m<=KETA;m++){
KOTAE=0;
check(m,1,a);
printf("%d桁:%d個\n",m,KOTAE);
}
printf("2003番目:%d\n",KOTAE6);
getch();
}
void check(int m,int n,int a[]){
int j;
a[n]=(n==1);
while(a[n]<=9){
if(dame(n,a)==0){
if(m>n){
check(m,n+1,a);
}
else{
KOTAE++;
KOTAE0++;
if(KOTAE0==2003){
KOTAE6=a[1];
for(j=2;j<=m;j++){
KOTAE6=KOTAE6*10+a[j];
}
}
}
}
a[n]++;
}
}
int dame(int n,int a[]){
int damedame=0,j=1;
while(damedame==0&&j<n){
damedame=(a[j]==a[n]||a[j]+a[n]==9);
j++;
}
return damedame;
NO4「A.O」さん 12/21: 22時09分 受信 更新12/31
[連続応募問題 第110回]
===============================================================================
まず、条件を書き直します。
・ 正の整数である。(0より大きい整数である。)
・ 10進表記したときに、次の数字の組み合わせのうち
同一の組の数字が、2つ以上含まれていてはならない。
(i)
0,9 (ii) 1,8 (iii) 2,7
(iv)
3,6 (v) 4,5
※例えば S の要素である整数のどこかの桁に'7'があるとする、
このとき、他の桁に('2' or '7')があってはならないということ。
[(1)S の要素のうち、10進数表記で1桁で表されるものの総数]
・ 1-9 の数字から1個を選んで最上位の桁とします。(9通り) ……… [a]
S の要素はこの順列の総数になります。
9 [通り]
[(2)S の要素のうち、10進数表記で2桁で表されるものの総数]
[a]に引き続き、
・ 0-9 から以前に選ばれた整数と同じグループ[上記の(i)-(v)]のものを除きます。
1グループが選択から除外されます。
残った数字から 1 個を選んで、上位から二番目の桁とします。(8通り) ……… [b]
S の要素はこの順列の総数になります。
9
*8 = 72 [通り]
[(3)S の要素のうち、10進数表記で3桁で表されるものの総数]
[a],[b]に引き続き
・ 0-9 から以前に選ばれた整数と同じグループのものを除きます。
2グループが選択から除外されます。
残った数字から 1 個を選んで、上位から三番目の桁に並べます。(6通り) ……… [c]
S の要素はこの順列の総数になります。
9 *8 *6
= 432 [通り]
以降同様に考えて、(本音:面倒なため省略)
(4) 9 *8 *6 *4 = 1728 [通り]
(5) 9 *8 *6 *4 *2 = 3456 [通り]
補:S の要素のうち 10 進表記で 6 桁のものはありません。
[(6) Sの要素のうち、小さいほうから数えて2003番目の要素は何か]
・まず、目的の要素の桁数を調べます。
(1+9+72+432) <= 2003 < (1+9+72+432+1728)
これと、これまでの解より、目的の要素は4桁であると分かります。
・4桁の S の要素について、詳しく調べます。
最上位桁のみ固定した場合、これを満たすSの要素数は、
■□□□ …… 8 *6 *4 = 192 (通り)
以下、同様に上位から2桁、3桁と固定されている場合、
■■□□ …… 6 *4 = 24 (通り)
■■■□ …… 4 =
4 (通り)
(もちろん、固定されている部分は、Sの要素であるための条件を満たしているものとする。)
また、S の要素で 4桁であるもののうち最小のものは、"1023"であり、これは、これまでの解から
(1+9+72+432)=514 番目の要素になります。
ここで、2003 を変形します。
2003 = (1+9+72+432) + 7*192 + 6*24 + 0*4 + 1*1
従って、小さいほうから数えて2003番目のSの要素は、
・4桁の整数である。
・千の位は、取りうる値のうち小さい方から (7+1)番目
・百の位は、取りうる値(ただし上位の桁と矛盾しないこと)のうち小さいほうから(6+1)番目
・十の位は、取りうる値(ただし上位の桁と矛盾しないこと)のうち小さいほうから(0+1)番目
・一の位は、取りうる値(ただし上位の桁と矛盾しないこと)のうち小さいほうから(1+1)番目
[決定作業]
千の位 …… * 1 2
3 4 5 6 7 [8] 9
百の位 …… 0 * 2
3 4 5 6 [7] * 9
十の位 …… [0] * * 3
4 5 6 * * 9
一の位 …… * * *
3 [4] 5 6 * * *
(答) "8704"
NO5「Kashiwagi」さん1回目 12/25: 09時41分 受信 更新12/31
「Kashiwagi」さん2回目 12/28: 12時36分 受信 更新12/31
第110回解答―再送
(1)題意より9個
(2)2桁の和が9となるのは、0-9、1-8、2-7、3-6、4-5の組み合わせであるから、これらの組み合わせを避ければよく、
10の桁は0以外の数、1の桁は残り9個の数より10の桁との和が9とならなければよいので8個、因って9×8=72が求めるもの。
(3)3桁も2桁と同様に9×8×6=432
(4)4桁も同様に9×8×6×4=1728
(5)5桁も同様に9×8×6×4×2=3456
(6)これまでの議論からSの要素に属する2003番目の数は4桁であることが分かる。
Sに属する3桁までの数の合計は513であるから、2003−513=1490となり、4桁の1490番目であることが分かる。
ところで1000〜1099までの数でSに属するものは、10の桁が2,3,4,5,6,7で1の桁が各々4個づつある事が分かる。
即ち24個である。これは1200〜1900(1100、1800は題意に適さない)にも当てはまるので24×8=192となる。
この議論は2000〜9000にも当てはまる。
ところで1490=192×7+146であるから、8000台の146番目であることが分かる。
146=24×6+2であるから、8700番台の2番目であり、8704が求めるものである。
NO6「三角定規」さん 12/26: 17時49分 受信 更新12/31
第110回解答送ります。
[解答]<三角定規>
(1)Sの要素で1桁… 9個
(2) 〃 2桁… 72個
(3) 〃 3桁… 432個
(4) 〃 4桁…1,728個
(5) 〃 5桁…3,456個
(6)2003番目のSの要素…8704
前回は、不完全ながらもかなり肉薄できたと思うのですが、今
回は、完全に<白旗>です。
ですが、できないのはシャクなので、エクセルでシラミつぶし
を敢行し、ねじ伏せました。荒っぽい方法で申し訳ありません
。
ところで、出てきた答えを見ると、
(2)=(1)×8
(3)=(2)×6
(4)=(3)×4
(5)=(4)×2
となっているのですね。これも、キチンと論理的に考えれば、
裏付けられるのでしょうね。
またまた、解答解説に期待致します。
添付したのは、シラミつぶしに使ったエクセルのマクロです。
本年は、大変お世話になりました。
新年も、よろしくお願い致します。お手やわらかに!
よいお年をお迎えください。