メカエンジニアのためのプログラミング #008 アルゴリズムとデータ構造(簡易版)

アルゴリズムとは要するにある課題を解くための手続きである。ものを作る上での手順と言っても良い。例えば料理に例えるとわかりやすい。

カレーを作るアルゴリズム

  1. じゃがいも・玉ねぎ・にんじん・お肉・カレールーを用意する
  2. お米を用意する
  3. 炊飯器にお米と水を入れて、スイッチを押す。
  4. 玉ねぎを切る
  5. 玉ねぎを炒める。
  6. じゃがいも・人参を切る。
  7. お肉を切る。
  8. お肉を焼く。
  9. 鍋に炒めた玉ねぎ・お肉を入れ、水を入れる。
  10. 鍋にじゃがいも・人参を入れる。
  11. 鍋を加熱する。
  12. 沸騰したら、火を止める。
  13. 鍋にカレールーを入れる。
  14. カレールーが溶けきるまで鍋の中身をかき混ぜる。

カレーのデータ構造

一般的には

冷蔵庫 = [玉ねぎ,人参,カレールー]
床下収納 = じゃがいも
冷凍庫 = [魚肉, 豚肉, 牛肉]
キャビネット = [ [包丁, 皿], [鍋(小), 鍋(大)] ]
机 = [コップ, 炊飯器]

アルゴリズムを意識した構造では

バット =array(

調整剤, カレールー, 塩,こしょう,
野菜, 玉ねぎ, 人参, じゃがいも,
お肉, 魚肉, 豚肉, 牛肉,
調理器具, 包丁, 鍋(小), 鍋(大),
その他, 皿, コップ, 炊飯器

)

以上をコードにしてみると(実際にはカレーを作るコードなどはないのでprint()で代用すると)、

一般的な方は


# コード
import numpy as np

reizouko = np.array(("玉ねぎ","人参","カレールー"))
yukasitasyunou = r"じゃがいも"
reitouko = np.array((r"魚肉",r"豚肉",r"牛肉"))
cabinet = np.array((("包丁", "鍋(小)"), ("鍋(大)", "皿")))
desk = np.array(("コップ", "炊飯器"))

print(reizouko[0])
print(reizouko[1])
print(reizouko[2])

print(yukasitasyunou)

print(reizouko[0])
print(reizouko[1])
print(reizouko[2])

print(cabinet[0][0])
print(cabinet[0][1])
print(cabinet[1][0])
print(cabinet[1][1])

print(desk[0])
print(desk[1])

アルゴリズムを意識した構造では


# コード
import numpy as np

tray = np.array(
    (("調整剤", "カレールー", "塩","こしょう"),
    ("野菜", "玉ねぎ", "人参", "じゃがいも"),
    ("お肉", "魚肉", "豚肉", "牛肉"),
    ("調理器具", "包丁", "鍋(小)", "鍋(大)"),
    ("その他", "皿", "コップ", "炊飯器"))
)

# print(np.shape(tray))
#  >>> (5, 4) # (行,列)

for i in range(0, 5):
    for ii in range(1, 4):
        print(tray[i][ii])

データ構造の重要性が理解できたのではないだろうか。アルゴリズムという言葉だけ独り歩きして、データ構造の重要性に気づけていない人が多いのでぜひ重要性を理解してもらいたいものである。システムを乱立して互換性がないなどもってのほかなので、基本的にはシステムは統合してデータは一元管理できている方がよい。また、システムへのアクセス性を確保することも重要である。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

トップに戻る