HAKADORI その他

ExcelとAppleScriptで黄金比を計算

2016.09.16 金

ExcelとAppleScriptで黄金比を計算

こんにちは、CMB室の藤田です。

golden-ratio

※螺旋

今回は黄金比についての話です。英語ではThe Golden Ratio。Googleで「The Golden Ratio」を検索すると電卓が出てきます。

001

黄金比とは

近似値は1:1.618、約5:8( Wikipediaより
名刺の縦横サイズとか、美術や自然界、株式相場のテクニカル分析などさまざまな場面であらわれる不思議な数字です。この黄金比を計算するにはフィボナッチ数列を使用します。

フィボナッチ数列

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610...

最初の二項は1, 2で決めうちとし、以後どの項もその直前の二項の和となっています。つまり、3つ目の「3」は「1+2=3」で以降「2+3=5」「3+5=8」というわけです。さらに数列が進むにつれ直前の項とで割った数が約1.61803398875...に収斂します。この数字が黄金比です。

1. Excelで計算

上記の法則をExcelで計算することができます。
最初のセルA1に「1」を入力しセルA2は「2」を入力。

002

※セルA1に「1」を入力

003

※セルA2は「2」を入力

セルA3に計算式「=A1+A2」を入力しセル下までフィルすると自動的にフィボナッチ数列ができます!

004

※セルA3に計算式「=A1+A2」を入力

005

※セル下までフィルするとフィボナッチ数列ができる!

次はセルB2に計算式「=A2/A1」を入力。

006

※2÷1=2

こちらもセル下までフィルすることで最初は「2」だった割り算の結果が「1.61803398874989」に収斂していきます。

007

※セル下までフィルすることで黄金比ができる!

しかしとある箇所で計算がおかしいことに気がつきます。
「498454011879264+806515533049393=1304969544928657」なのに
「1304969544928660」と表示されています。

008

※1304969544928657のはずが

どうしてこうなるのでしょう? なんとこれはExcelの仕様で、セルに15桁を超える数字を入力すると、15桁目より下位のすべての桁がゼロに変更されるためだそうです(参考:Excel のセルに桁数の多い数字を入力すると最後の桁がゼロに変更される)。なんだそりゃ! しかし前項と割った数は「1.61803398874989」となっています。

2. AppleScriptで計算

次にAppleScriptで計算してみました。

009

fibNumAが2つ前の項、fibNumBが1つ前の項で二項の和と割った数を求めています。こちらでは「1100087778366101931」まで正確に計算できましたが前項と割った数は「1.61803398875」でした。Excelに比べると小数点以下の数字が11位までしか表示されません。

ちなみに、上記のコードをAppleScript エディタで保存して再度開くと、「開けませんでした。」とアラートが…。どうもメモリが不足してしまうようでコンパイルできなくなってしまうようです。あらら。

010

大きな数を扱う場合はもっと精度の高いプログラムを使わないと険しいようです。

 

Excel業務を効率化するならRPA

タクトシステムではExcel業務を効率化するRPA導入サポートを行なっております。
RPAはDX推進の基礎ツールとして注目を集め、多くの企業で導入が進んでいます。
生産性向上・業務効率化をご検討中の方はぜひご相談ください。

RPAの得意分野

システム入力(Excel帳票からの転記)
データチェック(システムとExcelのデータ突合せ)
ファイル作成・変換(Excel化・ファイル形式変換・リネーム後ファイル作成)

RPAの詳細はコチラ

 

【RPA導入サポート】お客様の声をいただいています!

RPAはエクセルファイルをつかむとか、システムではやりづらい部分をフォローアップしてくれます。(株式会社出前館様)

タクトシステムさんは、無料で業務ヒアリングをしてサンプルロボットを作ってくださるということで、それがとても大きかったです。(株式会社玉善様)

日報などの集計作業や、複数データのダウンロード等の作業を中心に、約2年で140体のRPAロボットを作成しました。これにより5000時間ほどの作業時間を削減でき、単純なヒューマンエラーがなくなりました。(株式会社フォーバルテレコム様)

その他の事例はこちらから

 
 

お問合せ

お電話でのご相談:03-3200-0490 受付時間 9:00〜18:00(土日, 祝日を除く)

 
 

-HAKADORI, その他
-,