問題 - みる会図書館


検索対象: 月間ラム 1980年12月号
37件見つかりました。

1. 月間ラム 1980年12月号

懸賞問題 カ・、翻り えよう 今月の 『ねえ , おしさん。もう 1 台置いていってよ。 ペべもマイコンカヾほしいんをつ z 今月の問題は , かけ算と割り算のアルゴリズムを考 えるというものです。 Pascal や B A S I C などの高級 言語では , コンバイラやインタブリタがかけ算や割り 算を処理してくれますので , 使用者は * ( かける ) と か , / ( 割る ) とか書くだけですみます。しかし , 現 在使用されている大部分の 8 ビットのマイコンには , かけ算や割り算の命令がありませんので , 実際にはい くつかの命令 ( 加算 , 減算 , シフトなど ) の組み合わ せによって実行されているのです。 そこで , 普段はあまり考えることのない , かけ算と 割り算のアルゴリズムを , この機会に考えてもらいま す。かけ算と割り算のアルゴリズムは , マイコンマニ アなら一度は真剣に考えなければならない問題である と言えるでしよう。 アルゴリズムの性質上 , 高級言語で記述してもあま り面白くありませんので , アセンプリ言語を使っても らいます。採点の都合上 , C P U は 8080 , Z ー 80 , 6800 , 6502 の 4 種類に限定します。高級言語でアルゴリズム を考え , アセンプリ言語でプログラムを記述するとい う方法をとれば , 上の 4 種の CPU を実際に持ってい ないとしても , プログラムを作って応募できると思い ます。 ・問題 8080 , Z ー 80 , 6800 , 6502 のうちのどれガ 1 つのアセ ンプリ言語を用いて , 次の 2 つのプログラ乙を作成せ よ。アルゴリズ乙についても解説せよ。 1 ) 2 つの 16 ピットの 2 の補数表示の整数どうしをガ けて , 32 ピットの 2 の補数表示の整数の結果を得 るプログラ乙。 2 ) 32 ピットの 2 の補数表示の整数を , 16 ピットの 2 の補数表示の整数で割って , 16 ピットの 2 の補数 表示の商と余りを同時に得るプログラ乙。 ・採点 各 CPU ごとに , それぞれの最優秀作を選定します。 次に , 各 CPU 間の差違を考慮した上で , その中から 全体の最優秀作を決定する予定です。 各 CPU ごとの最優秀作は , 次の点をチェックして 選定する予定です。 a ) アルゴリズムが正しいこと ( プログラムが , 正し く動作すること ) 。 b) 総使用メモリ数 ( プログラムとデータ ) x 最長実 行時間の値が , 小さいこと。 c) その他 , 何か秀れた点があること。 ・アセンプリーき方について アセンプラの文法に厳密に従っていなくとも , 出 題者が見てプログラムの意味がわかるように書いてあ れば良いものとします。 注 ) 出題者は常識的な人間です。 く解答送り先 > 〒田 4 東京都中央区八丁堀 2 ート 5 り木第 2 ビノ F 日 AM 編集部分室に月号懸賞係 「マイコン字宙講座」プラスマイコン字宙講座 に収められたプログラムのカセットテープ全巻 ・最優秀作ー名 「コスモス」 ( 朝日新聞社 ) 上下巻 マイコンソフト用テープ 2 本 ・佳作 5 名 に月引日 ( 必着 ) く締切〉 ' 田年 3 月号誌上 く発表〉

2. 月間ラム 1980年12月号

50 み兄力やん れを一言うな 9 ノ マイコンしょ′・ さく 9 、つ」れ ダイコンと言う もんなんおよ \ 40 実 話 ⑤を平行移動 説 の 10 20 30 ェ 1 ポルノ雑誌の数 図 1 寅さんの問題の図式解法 ば , ① ~ ④の不等式をすべて満足する点は図の黒く塗 った部分に存在しなければならないことになります。 のような点のうちで / ( r ) = 300 ェ 1 十 400 ェ 2 の値をなるべ く大きくすることになるのですが , いま 300 十 40 2 = C とおけば , この直線は図中の点線に平行であり , C の値を大きくするにつれて直線は右上の方へ移動し ます。したがって , 四角形 OABC に属する点のうちで / ( 月 = 300 新十 400 の値を最も大きくするのは B 点と いうことになります。 B 点は直線①と②の交点ですか ら , その座標はこれら 2 つの式の連立方程式を解いて = 20 , ェ 2 = 12 となります。 つまり , その時の利益は / ( 司 = 300 X 20 十 400 X 12 = 10800 。寅さんとしてはポルノ小説を 20 冊 , 実話小説 を 12 冊仕入れるのが最も効率がよく , 最大利益は 10800 円ということになります。 診線形計法の -- - ー・般式 寅さんの場合 , 対象となったのはポルノ雑誌 ( 新 ) と 実話小説 ( ェ 2 ) の 2 種類でしたから 2 次元として取り扱 うことができ , グラフによって解くことができまし た。しかし , これにマンガ雑誌 ( ェ 3 ) が加わってくると 未知数が 3 個となり , もはや平面的に表現することがで きす , グラフによる解法は使えなくなります。 そして現実の日常生活においては , 未知数が 3 個以上 という問題はざらにあるわけです。一般に , 線形計画 法の問題を式で示せば次のようになります。 011 工 1 十の 2 2 十・・・・・・十 01 れ坙を 十 0 十・・・・・・十のれ石坙 62 十 0 工 2 十・・・・・・十れ坙 CI 工 1 斗・ C2 2 ・十・・・イ - C 工 ① 30 20 10 ② このような問題は計算によってしか解くことはでき ません。計算による解法として , シンプレックス法と いう解法が編み出されています ( 詳しくは参考文献 ( 1 ) ( 2 ) を見てください ) 。 しかし , シンプレックス法は便利にできているとは いえ , やはりかなり面倒です。参考文献 ( 1 ) 中では , 制約条 件式が 25 の場合 , 卓上計算機でこれを行なうと計算技 法に習熟した人で 4 時間要すると報告されていますし , その途中で計算ミスをする可能性もあり , 根気のない 人はとても我慢しきれないということになりかねませ ん。 診 T s - による線形計法のフ行クラム 上記の問題点を一挙に解決するものとして , 我が愛 機 TR S ー 80 のためのプログラムを作成しました。プロ グラムは LEVEL-II BASIC によって書かれており , RAM 容量は 16 K が基本となっています。なお L P の計 算部分はシンプレックス法によっています。 本プログラムの作成にあたっては、、実用に耐える " ことに最も重点を置きましたが , 次のような特徴も持 たせてあります。 ・スラック変数をプログラム内で自動的に導入できる ・インブットデータの表示 , 修正ができる ・標準形 , 特殊形の問題 , 双対問題 , 輸送問題など , あらゆる線形計画法の問題が解ける ・あらゆる解 ( 解が単一 , 解が複数 , 条件式に矛盾が ある , 解が無限大となる ) の判別ができる ・制約条件は最大 25 ( 問題の種類によっては 40 程度 ) まで可能 なお , すべてプログラム内で処理するため , プログ ラムの使用にあたって線形計画法の解法についての理 解は必要ありません。また , データの入力やそれらの 表示に必要な時間は別として , 純粋に問題を解くには 小さな問題で数十秒 , 大きな問題で十数分かかりま す。 0 50 40 制約条件式 - - 目的関数 1 1 1

3. 月間ラム 1980年12月号

※※家 I TEK I KA ー事物 4 X 1 x2 29 . ②② 9 12 . 8 ② SAISHUU MOKUTEKI—CHI 18999. 98 ② READ Y 係数行門符幻定門 式①②⑤と見比べてください。 このプログラムでは次のように定義します。前述の は必要ありません。 内 , 係数の値のみが必要で新 ~ というような変数名 コンピュータに入力するにあたっては , これらの式の 寅さんの問題の数式表現をもう一度見てください。 実際に解いてみましよう。 こで , このプログラムを使って , 寅さんの問題を 5 ー 1 コンピュータにガけるための準備 実際には簡単です。 ラムは自動的に停止し , 入力されるのを待ちますので , 一見面倒そうに見えますが , その場所に来れはプログ 断のための文字を入力するとかの作業を要求されます。 でプログラム使用者は数値を入力するとかあるいは判 ーチャートにしたものです。このうち * 印のあるところ 図 2 は , このプログラムを使用する時の流れをフロ 診フ巨クラムの他用法 ーⅲ編社恥△△“恥恥△“恥△“恥△ 4 恥編編△は△“恥△ⅲ△“恥△恥謝編△ー物△ 写真 1 初期値の数と変数の数を入力したところ 制約式の数 0 . 6 0 . 5 ( この例で 200 500 は 2 ) 変数の数 ( この例では 2 ) く く 18 10000 ⑤データの入力 * * * 初期値の入力 * * * 制約式の数 ? これは 5 ー 1 項で述べた制約式の数を入力せよという 意味です。寅さんの例の場合 , 制約式の数は 2 ですか ら 2 をキーインします。続いて同じように変数の数 ? と聞いてきますので例題の場合は 2 とキーインします。 こまでキーインした例を写真 1 に示します。 次はデータの入力です。以下の表示が現われます。 * * * 係数行列の入力 * * * 係数行列のうち 1 行 1 列の値を入力せよという意味 です。先の例の場合 0.6 を入力します。次いで ( 1 , 2 ) ? と聞いてきますので 0 , 5 と入力します。以下同様です。 係数行列の値を入力し終ると , 符号 ( 1 ) と質問してきます。これは式①の符号を入力せよとい う意味で , 符号とは①②式で示される不等号のことで す。寅さんの場合 , 両式とも符号はですが , 線形計 画法の問題においては , これ以外に ~ または = の 3 種 類の符号が考えられます。このプログラムでは , これ ら 3 種類の符号を次のように入力することにします。 例の場合の符号は坙ですから , こでは < をキーイ ンします ( 注 : 符号の入力の時く , > , = 以外のキー を入力した場合再度符号の入力を指示してきます ) 。次 いで定数の入力を指示してきますので , ①式の場合 18 とキーインします。以上のように①式から順に係数行 列 , 符号 , 定数と入力していきます。 次は目的関数の入力ですが , 今までの説明を参考に さ・んす . q が - とうさんに さ。をくのみむろ 目的関数 300 400 問 ↓ MAX 5 - 2 プログラ乙の実行 RU N させますと , 数秒間プログラム名が表示された のち , 次の表示が現われます。 1 12

4. 月間ラム 1980年12月号

9 月号懸賞問題 ジャンケン・ゲ特集 ・最優秀作 田代雅嗣さん ( 東京都豊島区 ) ( ワンボードマイコン C RC ー 8 の ・佳作 秦情夫さん ( 大阪府高槻市 ) 花井晶章さん ( 愛知県刈谷市 ) 久野保之さん ( 川崎市高津区 ) 長崎義男さん ( 東京都田市 ) 阿部忠行さん ( 川崎市多摩区 ) ( マイコンソフト用テープ 2 本 ) 一見 , やさしそう。でも , いざ作り出すと , 意外に 大変だったと思います。 ◆人間の癖を見つける方法 この問題のポイントの 1 つは , 人間がジャンケンを する時の癖を見つけることでした。しかし , 相手が人 ーロに癖と言ってもいろいろあります。 間ですから , 応募された方々のほとんどが , 癖の 1 つの要素につい て調べられたようです。代表的なものとして , 次の 3 つがあげられます。 . ①グー , チョキ , バーの出される頻度 ②ある手を出した後 , 次に何を出す確率が高いか ③グー , チョキ , バーがどのような順に出されて いるか , そのバターンを調べる ①と②は比較的簡単にできますが , ③はかなり大変 当選発表 PC ー 8001 版・ MZ-80C 版 当選発表ぐ 「懸賞問題に応募した読者作品 , 特に選に入ったプログラ乙を大き く掲載して欲しい」という多くの読者の要望にこたえ , 今月は従来 の当選発表のレイアウトをガえてみました。 当選発表と同時に , 最優秀作に選ばれた田代雅嗣さんと佳作のな かから花井晶章さんの 2 作品を一挙に掲載します。 たガガジャンケンと笑うなガれ , この 2 つのプログラ乙はなかな か手強いですゾ / 9 号懸賞問題 G ラ乙をつくる ) ジャンケン・プロ 早いもので , 文化祭のシーズンも終り , もう師走。 何となく落ち着かない時期になりました。ところで , 文化祭での皆さんの作品の評判はいかがでしたか。 さて , 9 月号の懸賞問題は次の通りでした。 問題 人間対コンピュータのジャンケン・プログラ乙を 作ってください。 グー , チョキ , パーは , 人間ガキーボードより入 カヴるようにしまヴ。ただし , コンピュータ側は , 入力されてくる前に何を出すガを決めてあガねばな りません。また , コンピュータには学習機能を持た せてください。つまり , コンピュータは対戦相手で ある人間の癖をいち早く見つけ出し , その癖をもと にしてジャンケンを続けていけるようにしてくださ 44

5. 月間ラム 1980年12月号

だったと思います。 この他のものも含め , いくつかの要素について調べ た人もいました。しかし , 人間の癖はいつも一定して いるわけでなく , 時と場合によっていろいろ変化する ようで , 人間の癖を読むのは大仕事のようです。 ◆ジャンケン必勝法 コンピュータは , 人間の癖によって出す手を決める ようにしなければなりません。初めの何回かは乱数を 使って人間の癖を窺いデータを集め , 癖がある程度わ かったらデータを見ながら出す手を決めていくわけで す。もちろん , 何回目であろうが癖を見つけるための データはとっておき , 相手の変化に対応できるように する必要はあります。 実は , 人間に負けないためにはグー , チョキ , バー をでたらめに ( たとえば乱数を使って ) 1 / 3 すつ出し ていけば良いことが知られています。応募されたもの の中には , 初めの 10 ~ 20 回程度は強いが , その後はコ ンピュータが不利になるというものがいくつかありま した。これでは , 乱数を使っている間は強いが , 手を 読み出すとだんだん不利になるというものです。すな わち , 人間の癖によって出す手を決めることにより , コンピュータの手にも癖が出てしまい , 逆に人間に読 まれてしまうわけです。 それでは , 強いジャンケンプログラムとは一体どの ようなものなのでしようか。 こで , はたしてジャンケン必勝法などあるのかと いう疑問が頭を持ち上げてきます。いつもでたらめに やっていれば , 大負けすることはなく , けっこう勝率 も高くなります。でも , それじゃ面白くもなんともあ りません。また , それがベストであるとも言えません。 だからと言って , 相手の癖を見つけながら手を出して いくと , 逆に手を読まれてしまいます。まさに , 人間 とコンピュータのいたちごっこです。そこでどうする か , それが問題です。 応募されたものを見ると , いろいろな癖の要素につ いて調べ , それぞれの要素についてある重さをかけ , 出す手を決めるというものがありました。しかし , れが必すしも強いとは言えないようです。 応募作品をながめてみると , 総じて「ある手を出し た後 , 次に何を出す確率が高いか」ということを調べ , 出す手を決定したプログラムが強いようです。いろい ろ頑張って複雑なことをやるよりは , 単純なものの方 が良いようです。しかし , これといった方法は今のと ころないようです。 ◆講評 応募された方々の作品を見て , 次のような点が気に なりました。 ①ゲームのプログラムなのに , 入力が面倒であっ たり , 出力が見にくいものが多かった。そのた め , ジャンケンをしても面白くない。 ②マニュアルがきちんと書けていない。 ③アルゴリズムの説明ができていない。 ①と②は , ゲームのプログラムを作る時の第 1 原則 のようなものです。プログラムを作るときの姿勢が問 われます。 また , ③については出題者が満足できるものはほと んどありませんでした。今後応募される方は , ます自 分が採用したアルゴリズムの基本となるアイデアを簡 単にまとめ , 次に少し詳しく説明するようにして下さ い。プログラムを見て下さいなんていうのは , まった くダメです。また , 流れ図を書かれた方もいましたが , これは簡単なものはわかりやすく書き表わせますが , 複雑なものは流れ図で書き表わされても , まるでわか りません。日本語または擬似言語 ( たとえば ,Pascal) 風に書くことを勧めます。 次に , 今回の問題の大きなポイントである , 人間の 癖を見つけ出し , 手を決めるアルゴリズムについて。 これを考えるに当って , 人間の癖について調べ , そ の結果に基づいてアルゴリズムを完成させた人がほと んどいなかった点が残念です。ますは , 多くの人とジ ャンケンをしてみて , どういう癖を持っている人が多 いか調べてから , プログラムを作ったら , より良い作 品になったと思います。 以上の点など総合的に評価し , 東京の田代雅嗣さん の作品を最優秀作とします。田代さんの作られたジャ ンケンゲームは , とても楽しく遊ぶことができますし , ジャンケンも強いのです。ーロで言えば , 小意気な作 品と言うところでしよう。癖の見つけ方は , 「ある手 を出した後 , 次に何を出す確率が高いか」というもの でした。 また , 佳作の中で秦晴夫さんの作品は , 論文と言っ てもおかしくないほどの大カ作でした。いろいろなこと が吟味されており , 最優秀作と言っても良い作品でし た。しかし , ゲームを楽しむという点が , もう一歩と いう所で佳作としました。 最後に , 出題者としては , コンピュータ対コンピュ ータのジャンケン果し合いをやるのも楽しいことだと 思います。きちんとルールを決め , 対戦したら , さぞ や棲まじい試合が展開されるのでは , と感じています。 45

6. 月間ラム 1980年12月号

線形計画プロクラム ロロ 宀ャん七大喜び . 〃 さあさ , 見てらフしゃ凵 形計画瑟の マのレ つ ′。とつ 診フレローク・、 「男はつらいよ」の寅さんの商売は , 今のところ大道 での古本売り。古本の仕入れにあたって寅さんは考え トランクで運べる本の重量はせいぜい 18kg 。 ました。 また , 古本を仕入れるため財布にあるお金は 1 万円札 1 枚。目の前にポルノ雑誌と実話小説の束があります。 ポルノ雑誌は 1 冊 600g で仕入値が 200 円 , 売値は 500 円 と値ぶみします。一方実話小説は 1 冊 500g で仕入値は 500 円 , 売値は 900 円と考えます。 このような状況のもとで , 寅さんとしては最も儲け を多くするにはポルノ雑誌と実話小説をそれぞれ何冊 仕入れるのがよいでしようか ? 寅さんの口上をそのまま拝借するなら「さあさ , 御 用とお急ぎのない方は聞いてらっしゃい見てらっしや い。ただいまより線形計画法の実演の始まり始まり」 4 というところ。 1 10 形計画法という計算技術です。線形計画法は Linear このような問題を解く手法として体系化されたのが線 日常生活あるいは生産活動の中で頻繁に生じてきます。 れた条件の中で最も効率的な割り当てを行なう問題は , 以上のエピソードからもわかるように , ある制限さ 線形計画法とは 植田克徳 200 均十 500 ェ 2 10000 ( 円 ) - - - - - ② 0.6 助十 0.5 ェ 2 18 (kg) - - - - - - - -0 ) と , 寅さんの問題は次のように数式表現できます。 ポルノ雑誌の数を新冊 , 実話小説の数を均冊とします この関係を式で表現してみることにします。仕入れる た条件のもとで儲けを最大にすることを目的として , ます , 持ち運べる重量と財布の中身という制約され さて , 寅さんの商売の応援をしてみましよう。 用価値の非常に高い技法といえます。 Research ( OR ) の分野で最も広く利用されており , 利 Programming ( 略して (P) ともいわれ , Operations という条件のもとで , もちろん題意から , f(r) = ( 500 ー 20 の十 ( 900 ー 500 ) ェ 2 = 300 新十 400 ェ 2 が相当し , 式②の場合も同じです。この問題からいえ ください。式①は図中の①という直線の下側の全領域 横軸にをとり , 縦軸にェ 2 をとります。図 1 を見て グラフによる視覚的な解法を試みてみましよう。 次に , 以上の問題を解くために , 最も理解しやすい 式 ) といいます。 ( 制約式 ) といい , ⑤式にあたるものを目的関数 ( 目的 ります。線形計画法では , この①②の式を制約条件式 を最大にするようにとェ 2 の値を求めるのが目的とな

7. 月間ラム 1980年12月号

データの修正 ? YES = C : NO = いすれかのキー この時 C をキーインすることによってデータの修正 ルーチンへ飛び , 次の表示が現われます。 係数行列の修正 1 定数の修正 2 目的関数の修正 3 修正終り 誤ったデータが係数行列か定数か目的関数かによっ て , 1 ~ 3 を選択します。たとえば係数行列の中に誤っ ったデータが入力されていたとして , 1 をキーインす ると次の表示が現われます。 係数行列 I 行 # ? これは誤ったデータが入力されている行ナンバーを 入力せよという意味です。たとえば , 1 行 2 列目のデ ータで正しくは 0.5 のところが 0.05 と誤って入力さ れていたとします。そんな場合は , 上記の質問の時 1 を入力し , 次の J 列 # ? の質問の時 2 を入力します。 すると , 現在の値 = 0.05 正規の値 ? という表示が現われます。これは現在 1 行 2 列には 0.05 が入力されているので正規の値を入力し直せという意 味ですから , 0.5 と入力し直します。データの修正を終 えると再び修正ルーチンにもどります。さらに修正す る個所があれば同様の手順を繰り返すことになります が , すべての修正が完了すれば修正ルーチンにもどっ た時に 4 を選択して修正作業を終ります。 ⑥結果の出力 線形計画法の計算段階になると , LP の計算中とい う表示が現われ , コンピュータが計算を実行中である ことを示します。この間の所要時間は小さい問題で数 十秒 , 大きな問題で十数分です。 第※ SHOKI—CHI NO NYLJIJRYOKIJ 単物事 SEiYAKl.J SHIKI NO KAZIJ— HENSUU NO KRZU— 写真 2 寅さんの問題の解の表示 計算が終了すると計算結果が自動的に表示されま すが , ⑥項で述べたステップごとの選択において , 有 ぼ ) が選択されている時は , その都度の計算結果が表示 されます。この表示を終えて次のステップに移る時は , 任意のキーを押してください。ステップごとの表示無 ( x ) を選択した時は , 最終結果のみが表示されます。なお , 最終結果の種類は 4 種類あって , それらは次の通りで す。 ・最適解が一意に定まる時 最適解が一意に定まる時は次のような表示となりま = 値 = 値この行は 10 行すっ表示されます。表示を進める ときは , いすれかのキーを押してください。 = 値 * * * 最終目的値 * * * R = 値 REA DY この形が最も一般的なものでェ 1 ~ の値が⑤⑥項で 述べた新 ~ 石の値になり , 最終目的値 R の値が / ( 月の 値に相当します。写真 2 に寅さんの問題を解いた時の 出力結果を示します。 ・最適解が複数ある可能性がある時 最適解および最終目的値の表示は前述と同じですが , READY の表示が出るべきところに , * * * 最適解が 複数の可能性がある * * * という表示の出ることがあ ります。これは最適解が一意に定まらす , 複数 ( 無限 大 ) 存在する可能性があることを示しています。こん な場合は , 任意のキーをもう一度押してみてください。 最適解が複数存在する時は , 第 1 回目に表示された 新 ~ とは異なった値が表示されます ( R の値は同じ ) 。 す。 ワ 相・性占い 1 14

8. 月間ラム 1980年12月号

友んちゃん っりや 新刑土 6 デしビい ? マイコン す′・ スタート 刀期値の人 制約式の数※ 変数の数※ 制約式の数ミ 25 Y E レ N O 苻号 > の数ーー・滸 符号がくで定数がを 負の数 処理可能 N O ストップ 数の入力 終了 Y E S YES して入力してください。 最大問題 = MAX : 最小問題 = MIN ? 次に , 上のように表示さ れますが , これは目的関数 を最大にするのが目的なら M A X を , 最小にするのが 目的なら MI N を入力せよと いう意味です。寅さんの問 題は儲けを最大にするのが 目的ですから , M A X と入 力します ( 注 : M A X また は MIN 以外の文字を入力す ると同じ質問を繰り返して きます ) 。 以上でデータの入力作業 を終了します。 ⑥ステップごとの表示の選択 シンプレックス法で線形 計画法の問題を解く場合 , 最終解の表示 最終解は一挙に得ることが できす , ステップごとの計 算を何回か繰り返して最終 終了 解を得るようになっていま 図 2 線形計画法プログラ乙使用のためのフローチャート こでは , この途中の す。 解析結果を表示するか否かを質問してきますから , も を押してください。 Y キーを入力すると係数行列のデ し途中結果が必要なら , この質問の時 Y を , また必要 ータから順に表示されていきます。ただし表示は 1 行 のない時は Y 以外の任意のキー ( いすれのキーでもよ ごとに出力され , 次の行に表示を進める時は , 任意の い ) を押してください。この時 ENTER キーを押す必 キーを押してください。 要はありません。 ⑥データの修正 ⑥入力値の表示の選択 入力値の表示の時など , もし誤ったデータが入 これは先に入力したデータが正しく入力されたかど 力されていることに気がついたら , 次の要領でデ うかをチェックするため , データの表示を行なうもの ータの修正ができます。入力値の表示が完了した時 です。データの表示が必要な時は Y を入力 (ENTER 点でディスプレイの下端に次のような表示が現われま キーの必要なし ) し , 表示の必要のない時は任意のキー す。 NO の / 、の ズテップごの表示の選※ カ値の表示の選択 有 無 LP の計算 入力値の表示 タのれ 無の選択 有 係薮行列の修正 : 定数の修正一 , ・一 目的の関数の修正 修正修了を※ Y E S 無 ステノブごとの解の表示 無 有 N O ステップごとの解の表小 1 13

9. 月間ラム 1980年12月号

この質問は制約式の内で符号 ~ をもつ式がいくつあ るかを聞いており , 下の質問は制約式の内で符号が でかっ定数が負の値の式の数を聞いているのです。 これらの入力が終了した時点で , 引き続き係数行列 の入力の指示が出れば計算が可能ですが , メモリ容量 が不足の時は , 問題が大きすぎるという表示が現われ て , プログラムの実行が停止されます。 このようにした時 , 制約式の数がいくつまでとれる かは問題の種類によって異なりますので一概にはいえ ませんが , 制約式の数を 40 程度まではとれる可能性が 出てきます。 0 診工とローグ、 TRS ー 80 をお持ちの方は ( ただし 16k 以上 ) , このプ ログラムを移植願えれば , そのまま使用いただけます。 ただし小生の場合プリンタを所有していないのでプリ ント出力ができません ( T V ディスプレイでも十分使 用できる配慮はしてあるつもり ) 。プリンタをお持ちの 方は一工夫してくださればと思います。 TRS ー 80 独特の表現を使用しているところも一部あ りますが , いすれもディスプレイに関する個所のみで す。メイン部は通常の BA SIC でありますから , 他の 機種をお持ちの方も十分移植可能と考えます。 ( んれ 0 Ueda) 第 3 の値 第 2 の値 第 1 の値 30 20X ー十 30X ー = 23.33 24X ー十 40X ー = 29.33 表 1 最適解ガ複数の時の第 3 番目以後の値の計算 この第 2 回目の値も最適解となります。また表 1 に示 すように第 1 の値と第 2 の値を任意の比率で結合した 値も最適解になります。したがって , 解は無限大存在 することになります。 任意のキーを押した時 , 2 回目の値が表示されす画 面がクリアされて READY と表示された場合は , 結局 一意に定まったことになり は最適解は複数ではなく , ます。 ・最適解が得られない時 * * * 解が無限大となり最適解が得られない * * * という表示が出ます。 ・計算不能の時 * * * 式に矛盾があり最適解が得られない * * * という表示が出ます。 以上 , 2 つの場合は , 入力したデータに誤りがなか ったかどうかを再度チェックするとともに , 制約式な どの見直しをしてください。 ①制約式の数が多すぎる時 ⑤において制約式の数を入力する時 , この制約式が 25 以下ならすべての形式の問題が解けますが , 26 以上 になるとメモリ容量の制約を受けて解けなくなります。 そこで以下に述べるような手順を経て , 26 以上の制約 式の問題にアタックします。 いま制約式が 25 以下なら , 続いて変数の値を入力し た後すぐに係数行列の入力となりますが , 26 以上にな ると変数の数を入力したあと続いて次のような表示が 現われます。 符号 > の数 符号がくで定数が ( ー ) の数 40 24 ◎参者文献 ( 1 ) 森ロ繁ー : 「線形計画法入門』 , 日科技連 , 1973 ( 2 ) 金田数正 : 「 OR 手法と F 〇 RTRAN 』 , 内田老鶴甫新 社 , 1978 81 斤年号は 12 月 24 日 ( 水 ) 発売乙〃 虫のお知らせ ・ 11 月号「 RALPH 的の製作」の訂正とお詫び 図 3 において , 外部バス用のバス端子番号が間違っ ています。図 9 のバス端子配列表の方が正しい番号で す。また , U7 ー 1 の IC の名称が他の TTL の名称と異な っていますが , 「 RALPH09 」で用いた TTL はすべて 74 LS シリーズです。 U6 ー 5 (LS74) の 3 番ピンと 11 番ピ ンはクロック入力です。 図 4 の FDC のアドレスは , $ FFC7 までです。 図 5 で PIAO ( UI ー 4 ) の CAI と CA2 からの配線が 交わっているように表わされていますが , 本当は交わ りません。 最後に図 6 における , U2 ー 6 ( LS399 ) の BI , DI に 入るアドレス線は , A14 , A15 です。 1 ・ 10 月号 P 133 のスロットゲーム・プログラム中に次 の 1 行が欠落していました。 828 215 2 L X ー H , H ・ 10 月号の「心疾患の危険率予測プログラム」の文中 において , コレステロールの正常値と HDL の正常値が 間違っていました。正しくは , それぞれ 150 ~ 250mg / dl, 47 ~ 72mg / dl です。訂正してお詫び致します。なお , プログラム中では正しい値になっていますので何ら問 題はありません。 ・ 10 月号 P. 135 の図 3 に誤りがありました正しくは右図 の通りです。 1 R B4 SW2 1 1 5

10. 月間ラム 1980年12月号

・利業夫学を経営工学教全 玄光男、 : 井田憲 、 , 、前回の行列の固有値問題はどうだったでしようか。 理解しにくい師者もたぶん多ったのではないかと思 いますよこの行列の固有値問題は本シリーズ中最も大 きな山でをそれ自体で 1 つの本になっている程のもの です。今すぐに理解できなくても , 。、後になってきっと 役に立っときガあります。 さてい今回は数値積分について紹介します。 台形公式 . 定積分の近似をよくするためには , 図 3 で 示すような台形の面積の和を計算すればよいことにな ります。小区間〔 , + 1 〕の台形の面積 & は , 次のよ うに求められます。 ( 3 ) したがって , 定積分 Sn は次式によって表わされま この式を展開すると , 次のようになります。 2 ( 5 ) こで , + 1 = 十んい = 0 , ム , れ一 1 ) であること から , 上式は次のように示されます。 数積分 数値積分とは , 不定積分や積分公式集などを用いて 定積分を計算することができない場合に行なう近似的 な数値計算のことです。したがって , 積分法に関する 知識を若干必要としますが , これから積分法を学ぶ読 こではその基本的な考え 者にも理解できるように 方を中心に説明します。さらに , 興味のある読者のた めに , より精度の高い手法も紹介しますので参考にさ れるとよいでしよう。 / 1. 等間隔分点のための公式ノ 関数 / は ) が区間〔。 , 6 〕において連続であり , / ( と 0 を満たすとき , この区間での曲線ッ = / ( ェ ) と 軸によって囲まれた図 1 に示される面積 S は次のよ うな定積分によって表わされます。 いま , 積分区間〔 6 〕を , 図 2 に示すように等しい 幅んをもつれ個の小区間〔写 + 1 〕に分割し , = 。 , = 6 とします。したがって , 人のグラフの下側の面 積は , れ個の長方形の面積の和によって近似できます。 この面積は小区間の分割数れを無限に大きく , あるい は小区間の幅んを無限に小さくすれば , 式 ( 1 ) の S と 一致します。すなわち , s = lim / ( ェ ) ん す。 ( 4 ) ( 6 ) ( 2 ) SI ー 1 6 ニエれ 工れ一一 6 ニエれ の へ 区 2 図 3 台形による近似 図 1 定積分 120