「 使うアルファベットを合わせましょう。(x、y)の関数は(u,v)なのよ」
「 ↑ あっ、ダメだ 埋まらね☆
同型じゃないんだぜ、なぜ☆(^~^)!?」
「 こんな簡単な例で 同型じゃないグラフを作れてしまうの、わらう☆」
「 y軸は 7、7×3、7×3×3 と3倍3倍なのに、
x軸は 20、20×2、20×3 と倍率が+1のカウントアップになってるのよ」
「 ↑ 修正……、有理数だが 循環小数になってしまうぜ☆!?」
「 じゃあ 20, 40, 80 ではなく、 80, 160, 320 でやってみろだぜ☆」
63 5040 10080 20160
21 1680 3360 6720
7 560 1120 2240
80 160 320
5040
20160 1680
10080 6720 560
5040 3360 2240
1680 1120 4
560 2
1
630
20160 210
10080 6720 70
5040 3360 2240
1680 1120 32
560 16
8
「 間違ってるんじゃないか☆? ナナメではなく、タテ・ヨコに計算しろだぜ☆」
20160 5040
10080 6720 1920
5040 3360 2240 840
1680 1120 320
560 140
6 5.25 4 3.5 2.666...
「 7×320=2240 が使いにくいのか☆
じゃあ Y軸を 21、63、441 にしろだぜ☆」
441 35280 70560 141120
63 5040 10080 20160
21 1680 3360 6720
80 160 320
141120
70560 20160 5040
35280 10080 6720
5040 3360 840
1680
14 4
6
189 15120 30240 60480
63 5040 10080 20160
21 1680 3360 6720
80 160 320
15120 2880
30240 20160 5040
60480 10080 6720 1920
5040 3360 840
1680 320
31.5 6 5.25 4 3.5
189 60480 120960 241920
63 20160 40320 80640
21 6720 13440 26880
320 640 1280
241920 69120
120960 80640 30240
60480 40320 26880 11520
20160 13440 5040
6720 1920
5.25 4 3.5 2.6666...
2.3333...
「 ↑ なんか スクロールして 見たくないところが出てきた……☆」
1890 1512000 3024000 6048000
630 504000 1008000 2016000
210 168000 336000 672000
800 1600 3200
1512000 2880
3024000 2016000 5040
6048000 1008000 672000 1920
504000 336000 840
168000 320
3150 600 525 400 350
1890 302400 604800 1209600
630 100800 201600 403200
210 33600 67200 134400
160 320 320
1209600 5760
604800 403200 2304
302400 201600 134400 960
100800 67200 384
33600 160
315 262.5 210 175 140
「 0.25、0.5 と出てくるのは 2分の1 がどこかにあるからじゃないの?
5ではなく、2で割ってみましょう」
1890 1512000 3024000 6048000
630 504000 1008000 2016000
210 168000 336000 672000
800 1600 3200
1512000 1440
3024000 2016000 2520
6048000 1008000 672000 960
504000 336000 420
168000 160
6300 1200 1050 800 700
「 ↑ なんか こんどは 10で割れそうな見た目をしているぜ……☆」
60480 180
30240 20160 72
15120 10080 6720 30
5040 3360 12
1680 5
504 420 336 280 224
「 ↑ いくらでも調整できるみたいなんで、タテ軸が360°っぽい この軸を 採用するかだぜ☆?」
「 ↑ xの偏微分をするときは、他の軸をロックすればいいんだろ☆」
「 じゃあ適当に f = u/v
ということにするかだぜ☆?」
504 100.8 42 16.8 7 2.8
420 84 35 14 5.83333... 2.3333...
336 67.2 28 11.2 4.6666... 1.86666...
280 56 23.3333... 9.3333... 3.8888... 1.5555...
224 44.8 18.6666... 7.46666... 3.1111... 1.24444...
5 12 30 72 180
「 u を 180 倍してから v で割れば 循環小数は消せるのでは☆?」
ux180/v
504 18144 7560 3024 1260 504
420 15120 6300 2520 1050 420
336 12096 5040 2016 840 336
280 10080 4200 1680 700 280
224 8064 3360 1344 560 224
5 12 30 72 180
u*90/v
504 9072 3780 1512 630 252
420 7560 3150 1260 525 210
336 6048 2520 1008 420 168
280 5040 2100 840 350 140
224 4032 1680 672 280 112
5 12 30 72 180
「 ↑ 2で割れるな☆ 奇数がないので まだ2で割れるぜ☆
と思ったら 525 があったので無理だった☆」
「 ↑ じゃあ この表と連結させて x,y から f を計算しようぜ☆?」
「 ↑ x と y から 直接 f を出せる式を作ろうぜ☆?」
f = u*90/v
u = x*y/v
v = x*y/u
x = 2^m*80
y = 3^n*21
f = u*90/v
u = (2^m*80)*(3^n*21)/v
v = (2^m*80)*(3^n*21)/u
f = u*90/v
u = (2^x*80)*(3^y*21)/v
v = (2^x*80)*(3^y*21)/u
「 ↑ 手詰まりだぜ☆ このあと どうしていいか分からん☆」
「 微分するなら x の何乗、 y の何乗 という形をしていないと いけないんじゃないの? あるいは 三角関数の sin か cos を使うのよ」
f(x) = sin x
「 ↑ sin x を f(x) と言い換えた式だぜ☆
sin x の導関数は cos x なんだが、ゆっくり見てみよう☆」
「 ↑ 三角関数の話しをしているときは、単位円の円周上を、絵に向かって見たとき 東の端から 反時計回りで走ってると思ってくれだぜ☆」
「 ↑ 円周をくるっと回っているとき、 x軸の上にいる おっさんは どう動いているかというと、マイナスの方向に直径の距離だけ走って、
また 戻ってくるという動きをしている☆」
「 スピード感も説明すると、端っこにいるときは もたもたとして ゆっくりで、真ん中の辺りでは おっさんは すびゃーっと速い☆
これは 円のカーブを見て感じてくれだぜ☆」
「 円周上のおっさんが 一定のスピードで走っていると、 x軸上のおっさんは 加速したり減速したりするのね」
「 逆に、x軸上にいる おっさん が一定のスピードで走っているときは、 円周上にいるおっさんは カーブの急坂を上がり下がりしているときは めっちゃ速い☆
どこにいるにしろ x軸上にいる おっさん より 円周上にいるおっさん の方が速いが☆」
「 ここで、 sin x
の話しが出てきたから、x軸上にいる おっさん が一定のスピードで走っているとき を想像してくれだぜ☆」
「 で、 x 軸が往復してるのが気にくわないんで、右に進むようにしてくれだぜ☆」
「 そうだぜ☆ ただし……☆ 上図は 円周上のおっさんが一定のスピードで走っているので、これを x軸上のおっさんが
一定のスピードで走っているように描き直したいぜ☆」
「 ↑ うまく等間隔に描けていないが、これが 正弦関数 だぜ☆ sin x な☆」
「 ↑ この sin x を微分して、導関数を求めるわけだぜ☆」
「 ↑ 説明のために x軸に 等間隔に 目盛り を振ろう☆」
「 ↑ おっと、増えてるのか 減ってるのかにも 着目してくれだぜ☆」
「 ↑ 羊羹が空中に浮いていたら危ないだろ☆ 下ろそうぜ☆?」
「 ↑ 90°分だけ左にずらした cos x が出てくると思ったんだが☆」
「 ↑ sin の加減算は 単純に足し算、引き算というわけにはいかず、 一手間 要るぜ☆」
「 ↑ このとき、 sin α と cos α の長さは どこのことを言っているかは、上図の通りだぜ☆」
「 ↑ 角度の α と β を足すというのは、上図のことだぜ☆」
「 ↑ sin α と sin β を足しても、多分、思っているところの sin ではないことを意識して欲しい☆」
「 ↑ 本当に調べたかった sin (α + β) は ここのはずなんだぜ☆」
「 ↑ 顧客が本当に欲しかったものネタをパクれば こんな感じだな☆」
「 ↑ ひとまず、地面から生えてた棒のことは 忘れろだぜ☆
調べたいところから ちょっぴり ずれたところにあるので、使えない☆」
「 ↑ そこで、半径1 の代わりに 次に使うのが、 sin β と、 cos β だぜ☆」
「 ↑ これで、 sin β cos α
と cos β sin α
がどこかは示せたな☆
sin β cos α + cos β sin α
が、 sin ( α + β )
になることを図で感じてほしい☆」
「 ↑ そして 角 α に、 角 β を足したのが上図だぜ☆ だから……☆」
「 ↑ cos (α+β)
というのは 上図の赤線のとこだぜ☆」
「 ↑ cos (α+β)
と cos α + cos β
はだいぶ違うんだな☆」
「 しかし どこが cos (α+β)
か分かったところで、その長さを計算する方法が思い浮かばないぜ☆」
「 ↑ いったん すっきり忘れて アホになってしまうことは 良い手らしい☆」
「 ↑ 上図の青線は sin β
だったが、これを 新しい 斜辺と考えるんだぜ☆」
「 ↑ すると 緑色の線のとこは sin β sin α
だな☆」
「 ↑ 上図で指している角は 180° - 90° - α☆」
「 αに適当に 30° でも入れて計算してみろだぜ☆ 上のちっこい三角形の示している角は 残り物の α になる☆」
「 ↑ 次に上図の水色の線☆ 円の半径の1より ちょっぴり足りてないな☆」
「 ↑ cos β
を斜辺とすると、 上図の赤線は cos β cos α
だな☆」
「 cos β cos α
から sin β sin α
を引けば、 cos(α+β)
が出てくるだろ☆」
「 そんなやつは公式を暗記しろだぜ☆ わたしは暗記の方が能力が要ると思うが……☆」
「 大雑把に言って 移動元と移動先 という情報なんだが……☆」
「 わたしは 利き がどう変化したかという情報も欲しいんだぜ☆」
「 これは 過去のPR文書にも書いたが、効きが移動するということは……☆」
「 効きが増えたところを水色、効きが消えたところを オレンジ色とすると こうなるはずだぜ☆」
「 長い利きの差分の良い取り方はあるだろうか☆?
例えば 空き王手、ディスカバード・アタックなどだぜ☆」
「 逆探知するしか なくないかだぜ☆? 元の位置で レイ(直線光線)を飛ばして 飛角香に当たるかスキャンするんだぜ☆」
「 利きのカウント・ボードは有ったが、差分更新ではなかったぜ☆」
「 いや、差分更新のカウント・ボードも 有ったのかも知れないぜ、お父んが忘れてるだけで☆」
「 相手の駒を取ったときに、その駒の利きが バサッと無くなるのも 大変だぜ☆
両者の駒を動かす前に 取られる駒の利きを 探知しとかないとな☆」
// TODO 利きの差分更新をしたいぜ☆(^~^)
//
// ・先後別の2つの利き数ボード、駒別の約30種類の利き数ボードがあって、全て最新にすること。
// ・平手初期局面用の利きは予め用意しておくこと。
// ・指す前の局面でやること。
// ・自分の盤上の駒を動かす前に、レイを飛ばして飛角香を逆探知すること☆(^~^)
// ・取られる駒がある場合、両者の駒を動かす前に、取られる駒の利きをスキャンすること☆(^~^)
// ・指した後の局面でやること。
// ・自分の駒を動かした先で、レイを飛ばして飛角香を逆探知すること☆(^~^)
// ・それ以外の駒は、差分のパターンが決まっているので、それに従って増減させること☆(^~^)
「 コンピューター将棋のテスティング・フレームワークを作ろうぜ☆?」
「 指定局面を入れて、 Go! して、ベストムーブを受け取って、一手指して、 Expected 局面と比較して、差分を出せばいいんじゃないの?」
「 利き は SFEN で定義されてないからな☆
それに、人が目視確認して分かりやすい表示にしたいぜ☆」
「 Visual Studio Code や Windows Command Prompt は 日本語の文字が等幅でないのも イケてないぜ☆」
「 Cascadia code というのが 等幅フォントなんじゃないか☆?」
「 ▼
を半角として扱うやつ 日本の史実を無視してて わらう☆」
「 ワールドワイドの大会に向けて 日本ロケールで アプリ作るのも 逆走だしな……☆
字を180度回転させて表示できたりしないのかだぜ☆?」
「 アジア文字なんか 西欧人は 読みたくないだろ☆ 漢字を180度回転させるとか そもそも無駄だぜ☆」
「 ↑ Windows Terminal に最適化すると 他のソフトで表示が ずれる……☆
世の中に 世界 というものは無いんだぜ☆ ローカルが点在するだけで☆」
<書きかけ>
Crieitは個人で開発中です。
興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!