#前書き
完全に個人的に遊んだ記録。
読者を想定しないが、暇つぶしなり、同じ遊びをしてみた人との情報共有なり。
また、この記事を読むにあたっては、ある程度までの言語知識(C/C++,Java)と、数学の知識が必要になるかもしれない。
プログラミングの知識については、私が苦しんで覚えるC言語の、第一部の内容がある程度わかっているくらいの知識量で書いている記事なので、同等程度の理解があればたぶん大丈夫。
注/上記は当時(2018/3 くらいの話である)
数学的な知識で、特に説明が必要と感じれば説明をするが、どうしてもわからないことは自前で見てきてほしい。
記事中のソースコードは基本的にはMicrosoft の Visual Studio 2017 で実行・確認しているハズであるが、
読みやすさのために書き方を変えたりすると、実行していない(→動作しない可能性のある)ものもあるかもしれない。
とっても素敵なスピードで記事が肥大化していきそうな感じがしていたので、
このページをインデックス的に扱うことに。
たぶん使い方間違えてるけど許してちょ。
#疑似乱数
「コンピュータってどうやって乱数列だしてんの?」ってふと思って調べた。
コンピュータが吐き出す乱数列は本質的には完全なアトランダムな数列ではなく、疑似乱数と呼ばれるもので、導出可能。
コンピュータの演算によって求められる、ある程度の法則性を持つ数列を使っているとのこと。そういえばC言語で標準関数として装備されてるrand()とかsrand()
で出てくる数は乱数としてはごにょごにょ...っていう記事を見た覚えが。
なんだかおもしろそう...じゅるり、というわけでさっそくお手軽にウィキペディアの疑似乱数の項を見に行くのであった。
##平方採中法
date 18/03/21
ウィキペディアの疑似乱数のページの一番上で紹介されてた。
「一番上だし簡単じゃね?」って手を付けて半日潰したわけですが。
(っていうか「もっとも古い手法」ってちゃんと書いてあった。1946年だと。)
記事本文へ移動
#参考資料
各資料毎に個人的な感想~~(つか感傷)~~をだーだー書いたが、見にくすぎて「なんじゃこりゃ」ってなったんで折りたたんだ。
読みたい人は▶をたたくと長文が開く。(やましいことは書いてない... 書いてないったら!)
C/C++関連
[**苦しんで覚えるC言語**](http://9cguide.appspot.com/)
私がC言語について全く知らない状態から、「プログラマになるゾ」と思いついたときに、
とりあえずC言語、いっとかない?感覚でC言語を学習しようとwebサイトをあさって見つけたサイト。
「書籍化もしている」とのことから信頼して読み漁り、対話なしではちょっとついていけないポインタの話くらいまでここで学習した。
「苦しんで」という割に、全然知らない人でもきちんと読めば、とりあえず理解できるように説明されている印象を受ける素敵なサイト。(主に苦しんだの筆者じゃないかしらん)
「苦C」だの「9cguide」だの表記にブレがあって申し訳ない。
アドレスバーに「9」と入れると即ここが候補に挙がる程度にはアクセスしてる。というか、困ったら見てる。
[**C言語関数辞典**](http://www.c-tipsref.com/)
C言語やってて「解説書に乗ってる関数全部覚えた」とかじゃなければ一度はアクセスするんじゃなかろうかっていうネーミングのサイト。
関数の引数・戻り値・機能のざっくりした説明に、サンプルコードも載ってて、関数以外にもマクロで定義されてるような定数の説明とか、専門用語で「聞いただけじゃわからないよ」って感じの単語の説明も載ってる、丁寧なサイト。
概要説明のある関数一覧のページで、欲しい機能に関連する単語(ファイル操作の関数なら「ファイル」とか)でページ内検索すれば概要に引っかかって探せちゃったりするので便利。ある種のチートシートとして利用している。
[**一週間で学べるシリーズ**](http://sevendays-study.com/index.html)
シフトシステム株式会社さんが作ったプログラミング言語の解説ページ群
C++のページの、特にクラスに関する話にてお世話になった。
私はクラスについてはまださっぱり知らない初心者であるし(18年3月現在)、きちんと人(先生)との対話の中で勉強したいので、参考程度にチラリと見ただけだが。
Java関連
[**Java API ドキュメント**](https://docs.oracle.com/javase/jp/8/docs/api/)
読むでしょ。読まない?
私の中では、Cでいうところの「C言語関数辞典」にあたるものと考えるが、
こちらはおおざっぱに探すことは必ずしもできるとは限らない。
クラスの名前をわかりやすくつけることを、前提としている節があるので、
ある程度の英単語(『プログラミング語』?)がわかれば探しやすい。
「ググって適当なサイトで見つけたクラスの、(厳密な)仕様を見たい」というなら、
これ以上のものは多分ないだろう。
(厳密に見たいならアメリカ語で読んだほうがいいであろうが、上記リンクはjpである)
**侍エンジニア塾ブログ(Java)**
マンツーマンでプログラミングを教えてくれるとかいう塾
の、ブログ。
てきとうに「これもっと便利にできんかな」っていうのをプログラミング語ちっくな書き方でぐぐると、だいたい上のほうでヒットする~~(相当頑張ってSEO対策したんだろうなー)~~
ヘッダーとか広告の配置の仕方とかから、詐欺サイトみたいな印象を受けるし、若干動作も怪しい感じがする。内容は嘘じゃなさそうだけど。(あくまで私見)
でかでかとしたヘッダーを間違ってクリックすると、**ほんとに、**詐欺サイトみたいな**見た目の**(重要)塾の案内サイトにつながる。
それでも読みに行くという人は[ここ](https://www.sejuku.net/blog/curriculums-java)(Javaの記事一覧(?)に飛ぶ)。
網羅率は高そうに見える。講師たちそれぞれに専門分野の記事を書かせたのだろうか。(想像)
内容の善し悪しはともかく、あんまり近寄りたくない。少なくとも自分からここへ行って何か習おうって気持ちにはなりそうにない。
なんかしらぐぐってヒットしたらとりま一通り読んでみて、知らないクラスや仕様は上記 oracle のサイトに見に行っている。