組み込みエンジニアの現場力養成ドリル(32)
ソフトウェア工学的には羽生善治の「5二銀」は最善手ではない!? 東工大入試問題をプログラムで解く(3/4 ページ)
「桶狭間の戦い」症候群
理系人間は、私も含め、「エレガントに問題を解きたい」と思います。そう考えるエンジニアは、敵の10%の軍勢で相手を倒す「桶狭間の戦い症候群」に罹患(りかん)しています。
羽生五段の妙手、「5二銀」のように、エレガントなアルゴリズムは、以下のような利点があります。
- ステップ数が少ない
- 処理時間が短い
- みんなから、カッコいいと賞賛を受ける
現実の処理で、エレガントなアルゴリズムを使うと、実は、利点以上に欠点が目立つはずです。例えば、以下の問題点があります。
①アルゴリズムを簡単に理解できない
エレガントな解法は、聞いた瞬間には理解できません。理解するのは時間がかかります。自分で考案したアルゴリズムでも、3カ月経つと、なぜ、そんな解き方をしたのか、すぐに思い出せないでしょう。理解容易性に乏しいのは、大きな問題です。
②保守性、特に、拡張性に欠ける
エレガントな解法は、ある特別の条件の場合に成立するものもあります。また、条件が変われば、やり直しになる可能性が大です。東工大の入試問題は、「10000以下の自然数」でしたが、「100万以下の自然数」に拡張するのは大変です。
一方、1から10000まで、順番に全数チェックする泥臭い処理方式には以下の利点があります。
①特別な考え方は不要
アルゴリズムが非常に簡単で、C言語を知っていれば、中学生でも解けます。
②誰がコーディングしても同じ処理、同じソースコードになる
アルゴリズムが同じになると、変数名以外は同じプログラミングになります。変数名の命名規則を決めると、インデンテーションが違うだけの同一ソースコードになります。処理方式やプログラミングは、プログラマーの個性を出す場ではありませんし、個性を出してはなりません。ましてや、「オレはこんなにも頭がいいのだ」と威張る場では、絶対にありません。普通のエンジニアが普通に考えつく処理方式こそ、優れたアルゴリズムです。
③拡張性に優れる
範囲を広げ、「10億以下の自然数」の場合でも、簡単に算出できます(ちなみに、6万7339個になります)。保守性に非常に優れています。
④機能的にも優れる
東工大の入試問題は、個数だけを問いますが、プログラミングで全数チェックすると、個数だけでなく、ガウス数が約数になる全ての値も簡単に求められます。すなわち、機能的にも優れています。
「物量と力と時間にまかせて、正面からじわじわと無理やり解く」は、エレガントさが重要な数学的にはカッコ悪い低評価の解法ですが、理解容易性と保守性を重視するソフトウェア工学的には非常に優れた解法です。現在、開発しているソフトウェアの処理アルゴリズムとして、「力まかせの全数処理」も候補にしていただければと思います。「~を全て求める」系の問題は、ソフトウェアで全数チェックできる可能性が大です。処理時間が遅くても問題がない場合は、力まかせで無理やりに解きましょう。
「桶狭間の戦い」症候群の特効薬
「桶狭間の戦い」症候群に罹患しているエンジニアへの特効薬として、以下の問題をプログラミングで解いてください。これも、大学入試で出題されそうな難問です。
問題2:制限時間10分
サイコロ5個を振って、目の和が7の倍数になる確率を求めよ。
Copyright © ITmedia, Inc. All Rights Reserved.
組み込みエンジニアの現場力養成ドリル
このコラムでは、組み込みエンジニアが日々の開発で実際に遭遇する「小さなトラブルを」取り上げ、演習形式で解説します。
この記事の著者
新着ホワイトペーパー PR
-
製品資料
[株式会社 Green AI] AIで脱炭素計画を最適化、初年度からエネルギーコストとCO2を削減する方法 -
市場調査・トレンド
[スマートジャパン編集部] 「ペロブスカイト太陽電池」の普及戦略が公表 政府が目指すコスト・導入量のロードマップを解説 -
市場調査・トレンド
[スマートジャパン編集部] 導入が加速する再エネ・系統向け蓄電システム コスト・収益性の現状分析 -
技術文書・技術解説
[スマートジャパン編集部] いまさら聞けない「ペロブスカイト太陽電池」の基礎知識と政策動向 -
技術文書・技術解説
[スマートジャパン編集部] 「ペロブスカイト太陽電池」の開発動向、日本の投資戦略やコスト目標の見通しは?
関連記事
こんなメディアも見られています
TechFactoryに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
特集
- マテリアルズ・インフォマティクスの動向調査
- 研究・開発職のデジタル活用調査
- 設計・解析業務におけるAI活用
- 3Dプリンタ利用動向調査
- CAD利用動向調査
- つながる工場の現状と課題
- 製造業におけるAI開発および活用の実態
- 設計・製造現場における品質管理
ホワイトペーパーランキング PR
-
1
EE Times Japan×EDN Japan 統合電子版:フィジカルAIが生み出す新たな「設計思想」――電子版2026年8月号
-
2
半導体装置メーカー 業績まとめ【2027年3月期第1四半期】
-
3
新入社員に読んで欲しい鉄鋼材料の基礎知識まとめ(Part4)
-
4
一時は時価総額トヨタ超え キオクシア2026年度の動向
-
5
微細配線間の絶縁劣化をどう捉える? 先端パッケージ評価の最前線
-
6
新入社員に読んで欲しい鉄鋼材料の基礎知識まとめ(Part1)
-
7
EE Times Japan×EDN Japan 統合電子版:2026年上半期の半導体業界を振り返る――電子版2026年7月号
-
8
新入社員に読んで欲しい鉄鋼材料の基礎知識まとめ(Part3)
-
9
CADツールの見直しは本当に必要? 切り替えの理由と効果を7つの質問で検証
-
10
新入社員に読んで欲しい鉄鋼材料の基礎知識まとめ(Part2)
TechFactory SNS
インフォメーション
注目情報をチェック
TechFactoryをフォロー