正n角形の各頂点から内部の点Pまでの距離が異なる自然数となる -その8-
なんかやっともやもやしていたものの解決策を思いついた。時間かかりすぎやろ。図のように正六角形ABCDEFがあり、各頂点から内部の点Pまでの距離が、AP=191、BP=455、CP=763、DP=887、EP=785、FP=491、が示されている。1辺の長さxを求めよ。シンキングタ~イムこんな問題を作りたかったのだが、自分自身で解法を見つけるまで、そうとう時間が掛かってしまったのだ。頭が回らなかったのか、点Pを囲む角度の和が360˚=2πであることで解こうとすると、余弦定理を使って逆三角関数の和となって、そこからxを求めるのは困難である。まぁ、そういう計算をさせようとしているのは、辺以外のデータがすべて揃っていて、辺xだけが不明だからであろう。補助線を引くといういつもの発想に至らなかったのも、本当にアホだと思っている。まぁ、どこでもいいのだが、今回はBDを結んでみる。BD=√3x∠ABD=90˚=π/2であることは、正六角形という情報から容易に求まる。ここで、∠ABP=θとおくと、∠PBD=π/2-θである。余弦定理より、1912=x2+4552-2・x・455・cos(θ)8872=3x2+4552-2・√3x・455・cos(π/2-θ)cos(π/2-θ)=sin(θ)より、1912=x2+4552-2・x・455・cos(θ)8872=3x2+4552-2・√3x・455・sin(θ)それぞれ、cos(θ)=、sin(θ)=の式に変形する。 cos(θ)= x2+4552-1912 2・x・455 sin(θ)= 3x2+4552-8872 2・√3x・455 両辺を2乗する。 cos2(θ)= (x2+4552-1912)2 22・x2・4552 sin2(θ)= (3x2+4552-8872)2 22・3x2・4552 cos2(θ)+sin2(θ)=1より、 (x2+4552-1912)2 22・x2・4552 + (3x2+4552-8872)2 22・3x2・4552 =1 三角関数を完全に消し去ることに成功しました。あとは、丁寧に展開していくだけです。3・(x2+4552-1912)2+(3x2+4552-8872)2=22・3x2・45523・(x2+207025-36481)2+(3x2+207025-786769)2=4・3x2・2070253・(x2+170544)2+(3x2-579744)2=2484300x23・(x4+341088x2+29085255936)+(9x4-3478464x2+336103105536)=2484300x23x4+1023264x2+87255767808+9x4-3478464x2+336103105536=2484300x212x4-4939500x2+423358873344=0x4-411625x2+35279906112=0X=x2とおくと、 X= 411625±√4116252-4・1・35279906112 2 = 411625±√169435140625-141119624448 2 = 411625±√28315516177 2 = 411625±13√167547433 2 x>0より、x=√(411625+13√167547433)/2このような計算を、他のところに対しても行うことで、どの辺であっても等しいことが証明されれば、この図の正しさを証明出来ることになる。実際に、赤線で示したBD以外にも、CE、DF、EA、FB、ACのどこを取ってきても、同じ4次方程式に行き着きます。ここにたどり着くまで、一ヶ月くらい掛かったかな。この計算をgeminiとやってたんだが、どうもgeminiが変な値を返すものだから、検算が大変だった。判別式の値に誤差が出ているから、あなたの与えた計算式に問題があるとか言ってくるんだ。もうまいったよ。とことん計算間違いを追求し続けたところ、geminiが判別式の四則演算を間違えていたんだ。確かに、今回の計算は桁数が大きいから、オーバーフローしたのかな?とかも考えて、geminiに問い合わせてみたが、64ビットだからオーバーフローしていないという。結論から言うと、ざっくりとだが、AIってのは、厳密性と即答性を天秤に掛けている。例えば、絵画の生成AIならば、各ドットの色の数値が多少間違っていても、そこまで厳密性を優先せずに、即答性を優先する。何を言いたいかというと、AIが計算をCPUとGPUのどちらに委ねるのかという話しだ。CPUとは、セントラル・プロセッシング・ユニットGPUとは、グラフィカル・プロセッシング・ユニットのことだ。昨今話題に上がっているNVIDIAなどは、GPUの話しだ。CPUとGPUはまったく設計思想が違うもので、厳密な計算をさせたいならばCPU、多少間違っていても即時性を優先するならばGPUという使い分けが出来る。それは、コンピュータの画面上の色合いの値、つまりRGBの各値において、±103/2563=±1000/16777216くらい違っていたところで、人間の目にはそこまで厳密性を求めないからである。昨今のゲームなどでは、即時性が優先されるから、高速なGPUを求める傾向にあり、AIも並列処理を多用するので、GPUを使ったりもしている。しかし、数式のような厳密な計算において、±1000/16777216≒0.00006というのは致命的である。5桁程度の計算で誤差が出始めるということでもある。geminiは、即時性を優先するあまり、厳密な計算なのにGPUに投げてしまったのだ。本当にそうなのかまでは解らないが、理屈としてはそうなんだろうと納得は出来る。自分の過ちについて、ずいぶんと謝ってきたけど、こういうからくりに気づくまで、随分とやり取りをすることになってしまった。私はコンピュータの技術者であり、最初に就いたのはテストプログラマであったことからも、こういった気になるところをとことん調べては、人間に解りやすい形で言語化してきたつもりである。でないと、顧客に説明出来ないからね。しかし、AIの活用はかなり気を使わなければならないってことを、一般ユーザは知る由もないだろうし、それをユーザ側に押し付けるのも、どうかとは思う。「Gemini は不正確な情報を表示することがあるため、生成された回答を再確認するようにしてください。」といった文言が画面の下に常に提示されているが、これはもう逃げでしかない。その確認が面倒だから、AIに投げているのに、こういうのはダメだろう。それなのにAIを業務に活用しろだと?AIを使いこなせないと生き残れないだと?そういう風潮にしたい輩がいるのだろう。AIに指示を与えるとして、人間以上に厳密に指示を与える必要があるってのは解ってはいる。解ってはいるが、ここまでアホな状況でAIを使って行かなければならないのだろうか。いや、アホだと判断されて、見捨てられたらそこでそのAIは活用されなくなるのだ。様々なAIが開発されては、バージョンを上げたりして、目新しさを出してきたりするのだが、結局はまだまだなのだ。あと5年、いやあと10年くらい待ったほうが良いのだろうか。それとも、AIのアホさ加減を理解した上で付き合い続けて、学習・育成していくのが良いのか。うまく利用できるところはとことん利用するのだろうけれども、そうでないと解ったところはAIには任せられないとするのか。各AIの得意なところ、苦手なところを選別して、何をどのAIにやらせるのか?ということなのだろうか。結局、自分自身で判断するしかないんだよな。なんか未来を夢見がちなのかな?散々消しゴムマジックすげーって称賛していたのにね。ではではa img { background-color: lightgray;}table.renbun td { border: 0px; padding: 2px 2px 2px 2px; vertical-align: middle; white-space: nowrap; }table.renbun td.ul { border-style: solid; border-width: 0px 0px 1px 0px; }table.renbun td.ol { border-style: solid; border-width: 1px 0px 0px 0px; }table.ans td:nth-child(1) { text-align: center; }table.ans td div { width: 265px; overflow-x: scroll; }table.ans td div span { white-space: nowrap; }html:not([lang]).fb {border-color: black;}@media screen and (max-width: 600px) { .fb {border-color: black;}}@media screen and (min-width: 601px) { .fb {border-color: white; }} table.test td {white-space: nowrap;padding: 0 5px;text-align: right;} table.test .y {background-color: yellow;color: black; } .u {border-bottom-style: solid;border-bottom-width: 1px;text-align: center;}table#list td { padding: 0 2px; font-family: monospace; }.no { display:inline-block; text-align:center; vertical-align:middle;}.ni { display:inline-block; text-align:center; vertical-align:middle; line-height:100%;}.ns { font-family:serif; font-size:250%; line-height:100%;}.io { display:inline-block; white-space:nowrap;}.io sub { vertical-align:bottom; white-space:nowrap;}.io sup { vertical-align:top; white-space:nowrap;}.ii { display:inline-block; vertical-align:middle;}.is { vertical-align:middle; font-family:arial;// font-family: sans-serif; font-size:300%; line-height:70%; font-weight: 5;// margin: 0 -15px 0 -10px;}.ii2{ display:inline-block; line-height:100%; vertical-align:middle;}.is2{ line-height:155%;// line-height:109%; font-family:sans-serif;}.mo { display:inline-block; vertical-align:middle;}.mi { display:inline-block; white-space:nowrap; vertical-align:middle; line-height:100%;}html:not([lang]) .mp { display:inline-block; line-height:100%; font-size:120%; font-family:sans-serif; margin: 0; padding: 0;}.mp{ display:inline-block; line-height:100%; font-size:120%; font-family:serif; margin: 0; padding: 0;}.md{ display:inline-block; line-height:120%; text-align:right; margin: 0 5px;}.lo { display:inline-block; text-align:center; vertical-align:middle;}.li { display:inline-block; text-align:center; vertical-align:middle; line-height:100%; margin: 0 5px 0 0;}.ls { font-family:serif; font-size:120%; line-height:100%;}.fb {border-style:solid;border-width:1px 0 0 0;margin:1px 0;}.fo {display:inline-block;text-align:center;vertical-align:middle;white-space: nowrap;}.fo span {margin: 0 3px;}.fo span span {margin: 0 0;}.article table {white-space: nowrap;}.ro{display:inline-block;white-space:nowrap;line-height:100%;position:static;}.rt{font-family: 'Meiryo', 'YuGothic', 'Gothic', sans-serif;}.ri{display:inherit;border-style:solid;border-width:1px 0 0 0;padding:0 1px 0 1px;margin:1px 0 0 0;position:relative; left:-1.5px;}article table {margin-bottom: 0 !important;}article table td {white-space: nowrap;text-align: center;}