円周率 π のお話

円周率って学校の授業では 3.14 と習うと思います。実際のより正確な値は

3.14159265358979323846264338327950288 ...

となり、小数点以下の桁が無限に続く値(無理数)です。

小数点以下が無限に続く数をいちいち書くのは面倒なので、
記号で「π」(パイと読みます)を使って表現します。

今回は円周率がどうして 3.14 なのかを解説したいと思います。

そもそも円周率って何?

円周率とは、半径 r の円の直径と円周の長さとの比を表しています。
例えば、半径 が 10cm の円の円周の長さは、

10cm * 2 * 3.14 ≒ 62.8 cm

として求めることができます。

では、なぜ円周の長さと直径の比が 3.14 なのか?
それを探っていきましょう。

六角形の外周はいくつ?

円の外周を考える前に、まず六角形の外周の長さを考えてみます。

円に各頂点がぴったりくっついた六角形です。
ちなみに、このとき六角形は円に内接すると言います。
六角形の各頂点を補助線を引いて結んでみます。

補助線はすべて直径と同じ長さになります。そして補助線は円の中心で交ります。

円の中に6つの三角形ができています。
三角形の頂点のそれぞれ角度(θ)は、360 度を 6 等分しているので 60 度です。
また、頂点を挟む二辺は半径 r と同じ長さです。
つまり、頂点の角度が 60 度、頂点を挟む二辺の長さが r の二等辺三角形です。

二等辺三角形の定義から、底角の角度は同じなります。
頂点が 60 度ということは、三角形の内角の和は 180 度ですから、

(180 - 60) / 2 = 60

底角の角度は 60 度になることがわかるので、
この三角形は実は一辺の長さが r である正三角形であることがわかります。

したがって円に内接する六角形の辺の長さの合計は 6r となります。
このとき、円の直径が 2r なので、

円の直径と六角形の辺の合計の比は、3 です。

ここで、

円周率とは、半径 r の円の直径と円周の長さとの比

のことでした。
つまり円周率が 3 だとすると、六角形の辺の長さになるわけです。

六角形と円ではだいぶ見た目が違いますよね?
六角形と円を同じだと言う人はいないと思います。
でもだいぶ円には近い気もしますよね?

じゃあ角数を増やしてみよう

円に内接するこの六角形は円にはまだ遠いですけど、結構いい線いってました。
この六角形をもっと角数を増やしていったら、一体どうなるでしょうか?
20角形、100角形、1000角形と角数を増やしていったら、
比率はどうなっていくでしょう。

手計算でやっていくのは大変なのでコンピューターに計算させましょう。

(define (ratio-of-side-length-to-radius r n)
  (let* ((top-angle (/ 360 n))
         (base-angle (- 180 90 (/ top-angle 2)))
         (side-length (* 2 r (cos (degrees->radians base-angle)))))
    (/ (* n side-length) (* 2 r))))

こんなプログラムになります。
ratio-of-side-length-to-radius 手続きは、引数 r に半径を、n に内接する正 n 角形の角数を与えます。


cos とか使うとラジアン(弧度法)が出てくるのでπとか出てきてしまうのですが、
πを求めてみるというお話なので弧度法の細かい内容は省いています。
degrees->radians という手続きを使用して、度数をラジアンに変換してごまかしていますw


まず六角形の辺の長さの比率を求めてみます。

gosh> (ratio-of-side-length-to-radius 1 6)
3.000000000000001

ちょっと誤差が出ていますが、3 なので合ってます。

では、角数を増やしてみましょう。

gosh> (ratio-of-side-length-to-radius 1 10)
3.0901699437494745
gosh> (ratio-of-side-length-to-radius 1 20)
3.1286893008046186
gosh> (ratio-of-side-length-to-radius 1 50)
3.139525976465665
gosh> (ratio-of-side-length-to-radius 1 100)
3.141075907812817
gosh> (ratio-of-side-length-to-radius 1 1000)
3.141587485879651
gosh> (ratio-of-side-length-to-radius 1 10000)
3.141592601913971
gosh> (ratio-of-side-length-to-radius 1 100000000)
3.1415926588122183

一億角形まで計算してみました。比率はどうでしょうか?
n の値が増えていくと、見覚えのある数字が出てきていませんか?

そうです。πが現れます。

内接する正n角形の角数をどんんどん増やしていくと、正n角形はどんどん円に近づいていきます。
直径と正n角形の辺の長さは、n を増やせば増やすほど π に近似していきます。
図を書くのはとても大変ですが、どんどん円になっていきそうだなって想像できますよね?


では n をとても大きい数、∞(無限)に近づけていったら果たしてどうなるでしょう。
円の中にできる三角形の頂点θはどんどん小さな値になっていきます。でも0にはなりません。
三角形の底辺もどんどん小さな値になっていきます。でも0にはなりません。
三角形の底角はどんどん90度に近づいていきますが、90度にはなりません。
三角形自体もどんどん潰れて細くなっていきますが、どこまで行っても二等辺三角形です。
そのとき、直径と正n角形の辺の合計(=外周)の比率はπに限りなく近づいていきます。


そこまでいくと、もはや人間には正多角形なのか円なのか区別はつかないでしょう。
円は正∞角形である。
と言い換えても良いかも知れません。


というわけで、
円周率はπ (3.1415 ...)である
ことがわかりました。
今回のように π の値をいちいち計算で求めなくても、
π の値はわかっているので、円の円周の長さ計算したいときは、直径に 3.1415 ... を掛け算すれば良いわけです。


これは円周率を求める計算方法のひとつで、他にもたくさんの計算方法があります。
興味があったら調べてみてください。

アニメ第二期

 

きたー!

二期はCパートからですねー。第一話から大波乱の予感。アニメでニーアオートマタ知って、ゲームやってない方は覚悟してくださいネ。(ニヤニヤ

 

ヨコオさんは、ロッカーにぶちこまれまくると思いますので、逃げてくださいw

久々にクロノアやる

アンコール(復刻版)をずっと寝かしてたんですけどもw、

25年ぶりになるんかな?(クロノア25周年だからね)

やってみたー。

PC版だとアケコンが使えなくって無理でしたw

PS5版もアケコン認識しなくて無理でしたwww

PS4版でクリアしたけども、結構時間かかったな。

 

ころさんはオリジナル版を配信してる。


www.youtube.com

いや、ころさんマジ上手いんですけど!それと、ころさんの良いところは、いつも楽しそうにプレイするところ。どれだけミスしても、楽しくプレイするところが良いよね。いや、ほんと上手い。まじで上手い。お世辞とかじゃなくて本気で上手い。尊敬するレベル!ミスしてもリカバリが早いんよ。観察眼が鋭いっていうか、分析力が高いってか、重要な事ってか、ヒントに気付くのが早いんよね。で、それがすぐ出来ちゃう。頭が切れるし*1、器用というか、ホントにゲームが上手い人だなって思う。

 

ひさびさにクロノアを自分でやってみて、そう思ったよ。

 

クリアした後のころさんもスキ!自分も初回プレイのときはマジ泣きしました。ゲームのアンケートで「感動して泣いちまったよぉ」って書いて送ったからねwww ゲームを開発したスタッフさんにきっと届いたと思うよ。そういう反響が多かったみたいで、当時公式にクロノアの「特設サイト」がオープンしたほどだからね。

 

クロノアはまじで神ゲーよな。ホントに素晴らしいゲームだよ。

いやぁ、ゲームって本当に良いもんですね。

*1:ころさんは東大卒らしい。わがりみー

祝☆7周年&800万本

 

オメデトウゴザイマス!

 

800万本達成したら、よーすPとヨコオさんとUSBこと田浦さんと世界の岡部姫(巻き込んでいく)

でヌルヌル相撲やるって言ってなかったっけ?

楽しみにしてまーすw

 

AEにバージョン上がっちまったw

先日、久しぶりにプレイしたら、どういうわけかAE(アニバーサリーエディション)にバージョンが上がっちまったwww で、いろいろ試しているうちにセーブデータが壊れてしまいエライ目に遭いました。Steam から起動した覚えないんだけどな・・・。「起動時しか更新しない」に設定するだけでは、なんか強制的にバージョンアップする事もあるらしい。

 

そこで Skyrim SE を絶対にアプデしない方法ーを見つけてきたのでメモ!

 

<STEAM_HOME>\steamapps ディレクトリにある

appmanifest_489830.acf を読み取り専用にします。

 

これで読み取り専用を解除しない限り、絶対にアプデされないらしいぞ。

このファイルをメモ帳で開いてみるとわかりますが、このファイルが Skyrim SE 用のインストールバージョンなんかを管理しているファイルです。「489830」が Steam のSkyrim SE に割り振られている製品番号らしい。

 

それとさらにメモ。

 

セーブデータを AE に読み込ませると MOD の情報が壊れるので絶対するな!(戒め

ゲームは起動してもMODエラー吐きまくるようになり、俺がブサイクになるっていう。どんな呪いだよ。クソッタレが。

© 2016 Bethesda Softworks LLC, a ZeniMax Media company. The Elder Scrolls, Skyrim, Bethesda, Bethesda Game Studios, Bethesda Softworks, ZeniMax and related logos are registered trademarks or trademarks of ZeniMax Media Inc. in the U.S. and/or other countries. All Rights Reserved.

バックアップしておいた Skyrim SE を使って、やっと直った・・・(疲

 

最後にベゼスダくんに一言。

Skyrim には手を出すな。

Skyrim AE なんてな MOD がまともに動かないバージョンはいらないんだよ。しかも SE が AE に置き換わるとか余計な事しやがってよ。Skyrim SE を未だにプレイして楽しんでる人も居るんだよ。いらんちょっかいを出すな! クッソみたいな出来栄えの Starfield のパッチでも、おまえは作っとれ!!このボケが!

 

ということで、Skyrim SE を遊びます。

 

しかし Skyrim ってなんでこんなに楽しいんだろな。何百時間でも遊んでられるわ。

最近見かけたう◯んこコード!

最近見かけたう◯んこみたいなクソコードを紹介していくコーナー!
ドンドンパフパフー!!

はい。
というわけで、最近仕入れた「う◯こ」なコードを紹介していきますよ。
良い子のみんなはこんなコードを書いちゃダメだぞ!

月データから月初の日を求める

Select Case 年月
    Case "2023/1"
        ym = "2023/1/1"
    Case "2023/2"
        ym = "2023/2/1"
    Case "2023/3"
        ym = "2023/3/1"
    Case "2023/4"
        ym = "2023/4/1"

    '中略(1年分書いてある)

End Select

☆ツッコミポイント
・2024 年になったら動かないだろがー。
・1日は毎月あるに決まってんだろが。計算で求めろやー。


謎のセレクトケース

Select Case なんちゃら1
    Case 値
        なにかの処理1
End Select

Select Case なんちゃら2
    Case 値
        なにかの処理2
End Select

Select Case なんちゃら3
    Case 値
        なにかの処理3
End Select

'こういう Select Case がひたすら書いてある

☆ツッコミポイント
・1ケースしかないなら If 文で書けやー。
・う◯こコードをコピペして増殖させてんじゃねえぞゴラァ。


ゼロ埋め処理

count1 = 0
count10 = 0
count100 = 0

'謎コードすぎて詳細は忘れたが、
'基本 count1 = count1 + 1 して
'count1 を基にそれぞれの countNNN をカウントアップ&0クリアする処理が書かれている。

'で count1 , count10 および count100 を使って三桁の数字を文字列に変換して使っている
'クソコードすぎてめまいがするぜ!この野郎!

☆ツッコミポイント
・桁毎に変数用意してんじゃねー。
・桁数増やしたい時は変数増やすの?バカかー。
・ゼロ埋め処理したいなら Format 関数とか使えやー。



とりあえず以上です。

とてもプロが書いたコードとは思えないでしょうが、
これらは実際にとある現場で見かけたコードなんですよ。
どれだけバカだったら、こんなう◯こコード書けるのか。呆れる。

紹介したようなう◯こコードを量産するのはやめてください。非常に迷惑しています。プロを自称するなら、常日頃からきちんと勉強を積み重ね、技術力向上に努めてください。それが出来ない人はエンジニアは務まらないのでIT業界に来ないでください。

本日のまとめ:
勉強が嫌いな人、向上心の無い人に
エンジニアは務まりません!

巨大なリング構造?

www.businessinsider.jp

 

これは未知の高度な文明を持つ知的生命体がダイソンスフィアを建設している説とかだったらロマンなのにw 直径が約13億光年だって。大きすぎん?w 設計ミスってるよねこれwwwこんなんじゃ発電できんぞいwwwww

でもジェームズ・ウェッブ宇宙望遠鏡を使って遠くの初期宇宙の観測が出来るようになり、ありえん程の大きさの銀河やブラックホールがいっぱいあるとかないとかで、ビッグバン説間違えてるんじゃね?っていう可能性もあるとかないとか。自分はビックバン説はあやしいと思ってるんですけどね。じゃあ宇宙はどうやって誕生したんや!膨張しているみたいに見えるやんけ!!って言われても、

さぁ?

って答えるしかないんですがwww

そんなもんわかるかいボケ!

これが答えw