|
問題
9本のカステラを10人で切り分けたい。
包丁を使う回数を、できるだけ減らすには、どのように切り分けたらよいだろうか。
ただし、いくつかのカステラをまとめて、一気に切るということはしないものとする。
答え
エジプト分数より、9/10=1/2+1/3+1/15なので、両辺に10をかけて、9=5+10/3+2/3
1本目 ┌───────┬──────┐ 5 本をそれぞれ 2 等分して、1/2 ずつ分ける
└───────┴──────┘ これは、5回
2本目 ┌───────┬──────┐
└───────┴──────┘
3本目 ┌───────┬──────┐
└───────┴──────┘
4本目 ┌───────┬──────┐
└───────┴──────┘
5本目 ┌───────┬──────┐
└───────┴──────┘
6本目 ┌────┬────┬────┐ 10/3 本をそれぞれ 3 等分して、1/3 ずつ分ける
└────┴────┴────┘ これは、7回
7本目 ┌────┬────┬────┐
└────┴────┴────┘
8本目 ┌────┬────┬────┐
└────┴────┴────┘
9本目 ┌┬┬┬┬┬┬┬┬┬┬────┐ 2/3 本を 10 等分して、1/15 ずつ分ける
└┴┴┴┴┴┴┴┴┴┴────┘ これは、9回
よって、5+7+9=21回
同じ大きさのものを同じ個数ずつ分けることになる。
(終り)
別解
9/10=1/2+1/5+1/5 9=5+2+2なので、1*5+4*2+4*2=21回
(終り)
OPTION ARITHMETIC RATIONAL !有理数モード
LET m=9 !6 !7 !4 !2 !本数
LET n=10 !10 !8 !9 !5 !人数
LET s=0 !回数
LET x=n !save it
DO UNTIL m=0
LET q=CEIL(n/m)
IF x>q THEN
LET s=s+(x-INT(x/q))
PRINT x/q;"本をそれぞれ";q;"等分して、";
ELSE
LET s=s+(x-1)
PRINT x/q;"本を";x;"等分して、";
END IF
PRINT "1/";STR$(q);" ずつ分ける"
LET m=m*q-n !次へ
LET n=n*q
LOOP
PRINT s;"回"
END
|
|