N88-BASICで長方形の並べ方
2023/2/4(土)
N88-BASICで長方形の並べ方
長方形(Rectangle)で正方形を作る
問題
赤い長方形、長さ(横,縦)=(462,110)と
青い長方形、長さ(横,縦)=(363,154)を
赤…赤青…青
│\││\│
赤…赤青…青
の様にそれぞれ1個以上ずつ並べて出来る
最小の正方形の1辺の長さLを求めよ
(2023年1月共通テスト、数学I・Aより)
解答
(1) 縦の長さの最小値hを求める
赤縦110と青縦154の最小公倍数なので
110 = 2・5・11、154 = 2・7・11より
h = 2・5・7・11 = 10・77 = 770
(Lは770の倍数となる)
(2) 両横の最大公約数wを求める
462 = 2・3・7・11、363 = 3・112 より
w = 3・11 = 33
(横の全長は33の倍数よりLは33の倍数となる)
(3) 770と33の倍数の最小値sを求める
770 = 2・5・7・11、33 = 3・11より
s = 2・3・5・7・11 = 770・3 = 2310
(Lは2310の倍数となる)
(4) Lは2310の何倍かを求める
横に赤n個と青m個並べ、L = 2310kと置くと
462n + 363m = 2310kより
2・3・7・11n + 3・112m = 2・3・5・7・11k
2・7n + 11m = 2・5・7k
11m = 2・7(5k – n)
11と2・7は互いに素なので
5k – nは11の倍数(mは2・7の倍数)
5k – n ≧ 11
5k ≧ 11 + n、n ≧ 1なので5k ≧ 12
kは整数なので、k ≧ 3
k = 3(最小)の時、n = 4、m = 14となる
(5) Lを求める
L = 2310k = 2310・3 = 6930
答え
最小の正方形の1辺の長さは6930
N88-BASICで解くためのアルゴリズム
赤い長方形を長方形A(横,縦)=(A.w,A.h)と
青い長方形を長方形B(横,縦)=(B.w,B.h)とする
(1) 縦の長さの最小値hを求める
長方形A,Bを1個ずつ横に並べ
高さが同じになるまで
高さが低い方の長方形を1個ずつ
それぞれの上に積んで行く
(2) 正方形になる横の並べ方を探す
hの倍数(h・i、i=1,2,…)と同じ長さになる
横の並べ方を総当たりで探し
当てはまるものをすべて表示する
以上の方法で実装しました
例として
13.2, 8.1, 8.4, 9.9
を入力しました
VL,NL,XL-BASICとblg~.zip(rect001.bas)は
以下のリンクからダウンロードできます
N88-BASICで長方形の並べ方
長方形(Rectangle)で正方形を作る
問題
赤い長方形、長さ(横,縦)=(462,110)と
青い長方形、長さ(横,縦)=(363,154)を
赤…赤青…青
│\││\│
赤…赤青…青
の様にそれぞれ1個以上ずつ並べて出来る
最小の正方形の1辺の長さLを求めよ
(2023年1月共通テスト、数学I・Aより)
解答
(1) 縦の長さの最小値hを求める
赤縦110と青縦154の最小公倍数なので
110 = 2・5・11、154 = 2・7・11より
h = 2・5・7・11 = 10・77 = 770
(Lは770の倍数となる)
(2) 両横の最大公約数wを求める
462 = 2・3・7・11、363 = 3・112 より
w = 3・11 = 33
(横の全長は33の倍数よりLは33の倍数となる)
(3) 770と33の倍数の最小値sを求める
770 = 2・5・7・11、33 = 3・11より
s = 2・3・5・7・11 = 770・3 = 2310
(Lは2310の倍数となる)
(4) Lは2310の何倍かを求める
横に赤n個と青m個並べ、L = 2310kと置くと
462n + 363m = 2310kより
2・3・7・11n + 3・112m = 2・3・5・7・11k
2・7n + 11m = 2・5・7k
11m = 2・7(5k – n)
11と2・7は互いに素なので
5k – nは11の倍数(mは2・7の倍数)
5k – n ≧ 11
5k ≧ 11 + n、n ≧ 1なので5k ≧ 12
kは整数なので、k ≧ 3
k = 3(最小)の時、n = 4、m = 14となる
(5) Lを求める
L = 2310k = 2310・3 = 6930
答え
最小の正方形の1辺の長さは6930
N88-BASICで解くためのアルゴリズム
赤い長方形を長方形A(横,縦)=(A.w,A.h)と
青い長方形を長方形B(横,縦)=(B.w,B.h)とする
(1) 縦の長さの最小値hを求める
長方形A,Bを1個ずつ横に並べ
高さが同じになるまで
高さが低い方の長方形を1個ずつ
それぞれの上に積んで行く
(2) 正方形になる横の並べ方を探す
hの倍数(h・i、i=1,2,…)と同じ長さになる
横の並べ方を総当たりで探し
当てはまるものをすべて表示する
以上の方法で実装しました
例として
13.2, 8.1, 8.4, 9.9
を入力しました
VL,NL,XL-BASICとblg~.zip(rect001.bas)は
以下のリンクからダウンロードできます