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)は
以下のリンクからダウンロードできます

https://ulprojectmail.blogspot.com
Readme.txtを読んで遊んで下さい
















このブログの人気の投稿

NEWS

N88-BASICでゲーム (1回目)