トピックス プログラム、シミュレーション

Excel関数、こんな使い方も

投稿日:

Q学習をExcelで実行する前に、Excelの関数について説明します。

資料はこちら → Excel関数

Excelファイルはこちら → Q学習準備

p.1 Excelに「配列数式」という機能があります。複数のセルを参照して値を貼り付ける機能です。①貼り付けたい範囲を選んでアクティブにする、②=の後にコピーする範囲をドラッグ、③その状態でShift+Ctrl+Enterを同時に押すと「{=コピー先範囲}」のように「{}」が付加されて、数値や文字が貼り付けられます。

p.2 「OFFSET」と「MATCH」という関数を説明します。知っておくと便利です。「OFFSET(参照,,列)」と定義されています。参照のセルから指定の行数、列数ズレたセルを指定します。引数の指定がなければ、行は下方向、列は右方向にズレます。引数を−1にすると上あるいは左にズレます。

MATCH検査値検査範囲」は、「検査値と検査範囲を比較し、検査値以下の最大値がある場所の順位を戻す」機能で、検査範囲内の順位を返してくれる面白い関数です。 使えそうな機能です。

p.3 真中上の図を見てください。 現在位置に対して、蟻が右に動く場合をアクション「1」、上が「2」、左が「3」そして下方向が「4」となります。左上を見てください。現在位置が「状態1」、次は下の「状態4」に移動します。9つのマス目で表すと、「状態1」は「1行1列」、「状態4」は「2行1列」です。現在位置に対してアクションの数字を用いて次の移動セルの行番号を算出する式が「=MIN(1+FIXED(1.1*COS(PI()/2*G13),0),3)」、列番号を算出する式が「=MIN(1+FIXED(1.1*SIN(PI()/2*G19),0),3)」です。状態数により行数と列数を算出するのに三角関数のCOSとSINを利用しています。本の著者が数学の専門家でないと思いつかない発想です。Fixed関数で整数にして1を加えて3と比較して小さい方を採用するというアルゴリズムです。真中辺りに2つのグラフを描いておきましたが、横軸がアクションNo.縦軸行数列数を表しています。右側の図は、状態1から右の状態2に進む場合です。

Excelの関数で、通常使用しない関数が多いですが、上手く使えればと思います。周期的な三角関数を用いて離散的な処理ができることは新鮮でした。

 

-トピックス, プログラム、シミュレーション

Copyright© 進化するガラクタ , 2019 All Rights Reserved Powered by STINGER.