平成11年11月3日

[流れ星]

    第34回数学的な応募問題

 <解答募集期間:11月3日〜11月15日>

[約分]

 

 太郎さんは、生徒が数学を楽しく学ぶためには「数覚」を磨く必要があると常に思っています。その中に、数がどんな素数から成り立っているかを見分ける能力があります。いわゆる素因数分解です。ときどき、授業中、1から100までの合成数の分解や素数を早く発見する「数覚」を鍛錬しています。

そこで、今回の問題です。

問題1:「下図の○の中に1から9までの数字を1つずつ用いて、分母が5桁、分子が4桁

の分数を作る。この分数を約分することによって、1/2となるようにしてください。」

問題2:「下図の○の中に1から9までの数字を1つずつ用いて、分母が5桁、分子が4桁

の分数を作る。この分数を約分することによって、1/3、1/4,…、1/9となるよう

にしてください。」

 

     

<出典問題>:数とその歴史53話の中にあるトライ問題(上垣渉 何森仁 共著):三省堂 

 太郎さんは、数字の入れ方を実際知りません。生徒に入れてもらって、考えようと思っています。

 

 <四年寝太郎>さんからの解答 3日午前1時受信 更新

とりあえず、プログラムで解こうと思ったらすごく多かったので

結果だけ送りました。ところで、プログラムで解くだけとかの回答も

多いみたいですが、そういうのもいいのでしょうか?

6729*2=13458 6792*2=13584 6927*2=13854 7269*2=14538

7293*2=14586 7329*2=14658 7692*2=15384 7923*2=15846

7932*2=15864 9267*2=18534 9273*2=18546 9327*2=18654

 

5823*3=17469 5832*3=17496

 

3942*4=15768 4392*4=17568 5796*4=23184 7956*4=31824

 

2697*5=13485 2769*5=13845 2937*5=14685 2967*5=14835

2973*5=14865 3297*5=16485 3729*5=18645 6297*5=31485

7629*5=38145 9237*5=46185 9627*5=48135 9723*5=48615

 

2943*6=17658 4653*6=27918 5697*6=34182

 

2394*7=16758 2637*7=18459 4527*7=31689 5274*7=36918

5418*7=37926 5976*7=41832 7614*7=53298

 

3187*8=25496 4589*8=36712 4591*8=36728 4689*8=37512

4691*8=37528 4769*8=38152 5237*8=41896 5371*8=42968

5789*8=46312 5791*8=46328 5839*8=46712 5892*8=47136

5916*8=47328 5921*8=47368 6479*8=51832 6741*8=53928

6789*8=54312 6791*8=54328 6839*8=54712 7123*8=56984

7312*8=58496 7364*8=58912 7416*8=59328 7421*8=59368

7894*8=63152 7941*8=63528 8174*8=65392 8179*8=65432

8394*8=67152 8419*8=67352 8439*8=67512 8932*8=71456

8942*8=71536 8953*8=71624 8954*8=71632 9156*8=73248

9158*8=73264 9182*8=73456 9316*8=74528 9321*8=74568

9352*8=74816 9416*8=75328 9421*8=75368 9523*8=76184

9531*8=76248 9541*8=76328

 

6381*9=57429 6471*9=58239 8361*9=75249         

<kiyo>さんからの解答 3日の午前10時受信 更新

いつもお世話になっています。

十進ベーシックでPログラミングしました。2進モードが速いようです。

所要時間 約10分20秒

2

6 7 2 9   1 3 4 5 8

6 7 9 2   1 3 5 8 4

6 9 2 7   1 3 8 5 4

7 2 6 9  1 4 5 3 8

7 2 9 3   1 4 5 8 6

7 3 2 9   1 4 6 5 8

7 6 9 2   1 5 3 8 4

7 9 2 3   1 5 8 4 6

7 9 3 2  1 5 8 6 4

9 2 6 7   1 8 5 3 4

9 2 7 3   1 8 5 4 6

9 3 2 7   1 8 6 5 4

 

3

5 8 2 3   1 7 4 6 9

5 8 3 2   1 7 4 9 6

 

4

3 9 4 2   1 5 7 6 8

4 3 9 2  1 7 5 6 8

5 7 9 6  2 3 1 8 4

7 9 5 6   3 1 8 2 4

 

5

2 6 9 7   1 3 4 8 5

2 7 6 9   1 3 8 4 5

2 9 3 7   1 4 6 8 5

2 9 6 7   1 4 8 3 5

2 9 7 3   1 4 8 6 5

3 2 9 7   1 6 4 8 5

3 7 2 9   1 8 6 4 5

6 2 9 7  3 1 4 8 5

7 6 2 9   3 8 1 4 5

9 2 3 7   4 6 1 8 5

9 6 2 7   4 8 1 3 5

9 7 2 3   4 8 6 1 5

 

6

2 9 4 3   1 7 6 5 8

4 6 5 3   2 7 9 1 8

5 6 9 7   3 4 1 8 2

 

7

2 3 9 4   1 6 7 5 8

2 6 3 7   1 8 4 5 9

4 5 2 7   3 1 6 8 9

5 2 7 4   3 6 9 1 8

5 4 1 8   3 7 9 2 6

5 9 7 6  4 1 8 3 2

7 6 1 4   5 3 2 9 8

 

8

3 1 8 7   2 5 4 9 6

4 5 8 9   3 6 7 1 2

4 5 9 1   3 6 7 2 8

4 6 8 9   3 7 5 1 2

4 6 9 1   3 7 5 2 8

4 7 6 9   3 8 1 5 2

5 2 3 7   4 1 8 9 6

5 3 7 1   4 2 9 6 8

5 7 8 9  4 6 3 1 2

5 7 9 1   4 6 3 2 8

5 8 3 9  4 6 7 1 2

5 8 9 2  4 7 1 3 6

5 9 1 6   4 7 3 2 8

5 9 2 1  4 7 3 6 8

6 4 7 9   5 1 8 3 2

6 7 4 1   5 3 9 2 8

6 7 8 9  5 4 3 1 2

6 7 9 1   5 4 3 2 8

6 8 3 9   5 4 7 1 2

7 1 2 3   5 6 9 8 4

7 3 1 2   5 8 4 9 6

7 3 6 4   5 8 9 1 2

7 4 1 6   5 9 3 2 8

7 4 2 1   5 9 3 6 8

7 8 9 4   6 3 1 5 2

7 9 4 1   6 3 5 2 8

8 1 7 4   6 5 3 9 2

8 1 7 9   6 5 4 3 2

8 3 9 4   6 7 1 5 2

8 4 1 9  6 7 3 5 2

8 4 3 9  6 7 5 1 2

8 9 3 2   7 1 4 5 6

8 9 4 2   7 1 5 3 6

8 9 5 3   7 1 6 2 4

8 9 5 4   7 1 6 3 2

9 1 5 6   7 3 2 4 8

9 1 5 8  7 3 2 6 4

9 1 8 2   7 3 4 5 6

9 3 1 6   7 4 5 2 8

9 3 2 1   7 4 5 6 8

9 3 5 2   7 4 8 1 6

9 4 1 6  7 5 3 2 8

9 4 2 1  7 5 3 6 8

9 5 2 3  7 6 1 8 4

9 5 3 1  7 6 2 4 8

9 5 4 1  7 6 3 2 8

 

9

6 3 8 1   5 7 4 2 9

6 4 7 1   5 8 2 3 9

8 3 6 1   7 5 2 4 9

 

620.62000000000262   今後とも宜しくお願いします。

 

 ch3cooh>さんからの解答 4日の午後2時受信 更新

今回はプログラムで(多分)全数サーチを行いました。

以下に

n 倍 : 分子 分母 の票を示します。

2 : 6729 13458

2 : 6792 13584

2 : 6927 13854

2 : 7269 14538

2 : 7293 14586

2 : 7329 14658

2 : 7692 15384

2 : 7923 15846

2 : 7932 15864

2 : 9267 18534

2 : 9273 18546

2 : 9327 18654

3 : 5823 17469

3 : 5832 17496

4 : 3942 15768

4 : 4392 17568

4 : 5796 23184

4 : 7956 31824

5 : 2697 13485

5 : 2769 13845

5 : 2937 14685

5 : 2967 14835

5 : 2973 14865

5 : 3297 16485

5 : 3729 18645

5 : 6297 31485

5 : 7629 38145

5 : 9237 46185

5 : 9627 48135

5 : 9723 48615

6 : 2943 17658

6 : 4653 27918

6 : 5697 34182

7 : 2394 16758

7 : 2637 18459

7 : 4527 31689

7 : 5274 36918

7 : 5418 37926

7 : 5976 41832

7 : 7614 53298

8 : 3187 25496

8 : 4589 36712

8 : 4591 36728

8 : 4689 37512

8 : 4691 37528

8 : 4769 38152

8 : 5237 41896

8 : 5371 42968

8 : 5789 46312

8 : 5791 46328

8 : 5839 46712

8 : 5892 47136

8 : 5916 47328

8 : 5921 47368

8 : 6479 51832

8 : 6741 53928

8 : 6789 54312

8 : 6791 54328

8 : 6839 54712

8 : 7123 56984

8 : 7312 58496

8 : 7364 58912

8 : 7416 59328

8 : 7421 59368

8 : 7894 63152

8 : 7941 63528

8 : 8174 65392

8 : 8179 65432

8 : 8394 67152

8 : 8419 67352

8 : 8439 67512

8 : 8932 71456

8 : 8942 71536

8 : 8953 71624

8 : 8954 71632

8 : 9156 73248

8 : 9158 73264

8 : 9182 73456

8 : 9316 74528

8 : 9321 74568

8 : 9352 74816

8 : 9416 75328

8 : 9421 75368

8 : 9523 76184

8 : 9531 76248

8 : 9541 76328

9 : 6381 57429

9 : 6471 58239

9 : 8361 75249

 

プログラムでは、分子でカウンタを作成しているために、載せた表の順番で回答が得られません。

UNIXのSORTコマンドなどを使用すると、必要とする順序に変更できます。

#include <stdio.h>

#define N 10 // 10 shin-suu

#define M 4 // 4 keta

int

test_restdigit( unsigned long mask, long v )

{int n, t ;while( v )

{n= v%N ;

v= v/N ;

t= 1<<n ;

if ( mask&t ) return 0 ;

mask= mask|t ;}

return 1 ;}

int

next_digit4( unsigned long *mp, int *list )

{int i ;

int v ;

unsigned long mask ;

mask= *mp ;

i= M-1 ;

do {v= list[i] ;

mask= mask&(~(1<<v)) ;

do { v++ ;}

while ( mask&(1<<v) ) ;

if ( v== N )

{i-- ; continue ;}

mask= mask|(1<<v) ;

list[i]= v ;

i++ ;

while ( i<M )

{for ( v= 0 ; mask&(1<<v) ; v++ ) ;

mask= mask|(1<<v) ;

list[i++]= v ; }

*mp= mask ;

return 1 ;}

while( i>= 0 ) ;

return 0 }

int

main( void )

{int list[4] ;

unsigned long mask ;

long value ;

int i, c ;

list[0]= 1 ;

list[1]= 2 ;

list[2]= 3 ;

list[3]= 4 ;

mask= 0x1f ;

c= 0 ;

do {value= list[0]*1000+list[1]*100+list[2]*10+list[3] ;

// printf( "%8d %7d %06x\n", c++, value, mask ) ;

for( i= 2 ; i< 10 ; i++ )

{if ( value*i< 10000 ) continue ;

if ( test_restdigit( mask, value*i ) )

printf( "%2d : %7d %7d\n", i, value, value*i ) ;}

} while( next_digit4( &mask, list ) ) ;

return 0 ;

}

<浜田明巳>さんの解答4日午後5時受信 更新

 いつものようにパソコンのプログラムで解きました.今回も十進basicのプログラムです.

 これはいわゆる覆面算の問題です.ABCD/EFGHI=1/nとし,式を変形して,ABCD*n=EFGHIとします.後はいつものシラミつぶしです.このままでは面白くないので,n>9の場合にも対応できるプログラムにしました.

 せっかくの問題ですが,これは覆面算の問題としては,あまり良くありません.答が複数個出てしまうからです.やはり覆面算は答が1つでなくてはなりません.

7 9 3 2 / 1 5 8 6 4 = 1 / 2

7 6 9 2 / 1 5 3 8 4 = 1 / 2

6 7 9 2 / 1 3 5 8 4 = 1 / 2

7 9 2 3 / 1 5 8 4 6 = 1 / 2

9 2 7 3 / 1 8 5 4 6 = 1 / 2

7 2 9 3 / 1 4 5 8 6 = 1 / 2

9 3 2 7 / 1 8 6 5 4 = 1 / 2

6 9 2 7 / 1 3 8 5 4 = 1 / 2

9 2 6 7 / 1 8 5 3 4 = 1 / 2

7 3 2 9 / 1 4 6 5 8 = 1 / 2

6 7 2 9 / 1 3 4 5 8 = 1 / 2

7 2 6 9 / 1 4 5 3 8 = 1 / 2

5 8 3 2 / 1 7 4 9 6 = 1 / 3

5 8 2 3 / 1 7 4 6 9 = 1 / 3

3 9 4 2 / 1 5 7 6 8 = 1 / 4

4 3 9 2 / 1 7 5 6 8 = 1 / 4

7 9 5 6 / 3 1 8 2 4 = 1 / 4

5 7 9 6 / 2 3 1 8 4 = 1 / 4

9 7 2 3 / 4 8 6 1 5 = 1 / 5

2 9 7 3 / 1 4 8 6 5 = 1 / 5

9 6 2 7 / 4 8 1 3 5 = 1 / 5

9 2 3 7 / 4 6 1 8 5 = 1 / 5

2 9 3 7 / 1 4 6 8 5 = 1 / 5

2 9 6 7 / 1 4 8 3 5 = 1 / 5

3 2 9 7 / 1 6 4 8 5 = 1 / 5

6 2 9 7 / 3 1 4 8 5 = 1 / 5

2 6 9 7 / 1 3 4 8 5 = 1 / 5

7 6 2 9 / 3 8 1 4 5 = 1 / 5

3 7 2 9 / 1 8 6 4 5 = 1 / 5

2 7 6 9 / 1 3 8 4 5 = 1 / 5

2 9 4 3 / 1 7 6 5 8 = 1 / 6

4 6 5 3 / 2 7 9 1 8 = 1 / 6

5 6 9 7 / 3 4 1 8 2 = 1 / 6

7 6 1 4 / 5 3 2 9 8 = 1 / 7

5 2 7 4 / 3 6 9 1 8 = 1 / 7

2 3 9 4 / 1 6 7 5 8 = 1 / 7

5 9 7 6 / 4 1 8 3 2 = 1 / 7

4 5 2 7 / 3 1 6 8 9 = 1 / 7

2 6 3 7 / 1 8 4 5 9 = 1 / 7

5 4 1 8 / 3 7 9 2 6 = 1 / 7

9 3 2 1 / 7 4 5 6 8 = 1 / 8

7 4 2 1 / 5 9 3 6 8 = 1 / 8

9 4 2 1 / 7 5 3 6 8 = 1 / 8

5 9 2 1 / 4 7 3 6 8 = 1 / 8

9 5 3 1 / 7 6 2 4 8 = 1 / 8

9 5 4 1 / 7 6 3 2 8 = 1 / 8

6 7 4 1 / 5 3 9 2 8 = 1 / 8

7 9 4 1 / 6 3 5 2 8 = 1 / 8

5 3 7 1 / 4 2 9 6 8 = 1 / 8

4 5 9 1 / 3 6 7 2 8 = 1 / 8

4 6 9 1 / 3 7 5 2 8 = 1 / 8

5 7 9 1 / 4 6 3 2 8 = 1 / 8

6 7 9 1 / 5 4 3 2 8 = 1 / 8

7 3 1 2 / 5 8 4 9 6 = 1 / 8

8 9 3 2 / 7 1 4 5 6 = 1 / 8

8 9 4 2 / 7 1 5 3 6 = 1 / 8

9 3 5 2 / 7 4 8 1 6 = 1 / 8

9 1 8 2 / 7 3 4 5 6 = 1 / 8

5 8 9 2 / 4 7 1 3 6 = 1 / 8

7 1 2 3 / 5 6 9 8 4 = 1 / 8

9 5 2 3 / 7 6 1 8 4 = 1 / 8

8 9 5 3 / 7 1 6 2 4 = 1 / 8

8 9 5 4 / 7 1 6 3 2 = 1 / 8

7 3 6 4 / 5 8 9 1 2 = 1 / 8

8 1 7 4 / 6 5 3 9 2 = 1 / 8

8 3 9 4 / 6 7 1 5 2 = 1 / 8

7 8 9 4 / 6 3 1 5 2 = 1 / 8

9 3 1 6 / 7 4 5 2 8 = 1 / 8

7 4 1 6 / 5 9 3 2 8 = 1 / 8

9 4 1 6 / 7 5 3 2 8 = 1 / 8

5 9 1 6 / 4 7 3 2 8 = 1 / 8

9 1 5 6 / 7 3 2 4 8 = 1 / 8

5 2 3 7 / 4 1 8 9 6 = 1 / 8

3 1 8 7 / 2 5 4 9 6 = 1 / 8

9 1 5 8 / 7 3 2 6 4 = 1 / 8

8 4 1 9 / 6 7 3 5 2 = 1 / 8

8 4 3 9 / 6 7 5 1 2 = 1 / 8

5 8 3 9 / 4 6 7 1 2 = 1 / 8

6 8 3 9 / 5 4 7 1 2 = 1 / 8

4 7 6 9 / 3 8 1 5 2 = 1 / 8

8 1 7 9 / 6 5 4 3 2 = 1 / 8

6 4 7 9 / 5 1 8 3 2 = 1 / 8

4 5 8 9 / 3 6 7 1 2 = 1 / 8

4 6 8 9 / 3 7 5 1 2 = 1 / 8

5 7 8 9 / 4 6 3 1 2 = 1 / 8

6 7 8 9 / 5 4 3 1 2 = 1 / 8

8 3 6 1 / 7 5 2 4 9 = 1 / 9

6 4 7 1 / 5 8 2 3 9 = 1 / 9

6 3 8 1 / 5 7 4 2 9 = 1 / 9

 

 n>9のとき,nの最大値は68で,その時の答は次の1通りです.

1 4 5 2 / 9 8 7 3 6 = 1 / 68

!mondai34.bas

!ABCD/EFGHI=1/n(n=2,3,4,...,9) -> ABCD*n=EFGHI

dim kuriagari(3)

for n=2 to 9 !for n=2 to 100

for D=1 to 9

let I=mod(D*n,10)

if I>0 and D<>I then

let kuriagari(1)=int(D*n/10)

for C=1 to 9

if D<>C and I<>C then

let H=mod(C*n+kuriagari(1),10)

if H>0 and D<>H and I<>H and C<>H then

let kuriagari(2)=int((C*n+kuriagari(1))/10)

for B=1 to 9

if D<>B and I<>B and C<>B and H<>B then

let G=mod(B*n+kuriagari(2),10)

if G>0 and D<>G and I<>G and C<>G and H<>G and B<>G then

let kuriagari(3)=int((B*n+kuriagari(2))/10)

for A=1 to 9

if D<>A and I<>A and C<>A and H<>A and B<>A and G<>A then

let F=mod(A*n+kuriagari(3),10)

if F>0 and D<>F and I<>F and C<>F and H<>F and B<>F and G<>F and A<>F then

let E=int((A*n+kuriagari(3))/10)

if A+B+C+D+E+F+G+H+I=1+2+3+4+5+6+7+8+9 THEN

print A;B;C;D;"/";E;F;G;H;I;"= 1 /";n

end if

end if

end if

next A

end if

end if

next B

end if

end if

next C

end if

next D

next n

end

PS.最近ペースが早くなってきています.ちょっときついです.

 

<水の流れ:コメント> 4日記入 

n>9のとき,nの最大値は68で,その時の答は次の1通りです.1 4 5 2 / 9 8 7 3 6 = 1 / 68

これは思わぬことが分かりました。ありがたいです。皆さんに感謝します。

   <自宅>  mizuryu@aqua.ocn.ne.jp

 最初のページへもどる