1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

はじめてのC++【2日目】

Last updated at Posted at 2019-02-26

2日目

1日目の方の記事に編集リクエストや間違いを指摘してくれた方本当にありがとうございました。
嬉しくなりモチベーションがバク上がりしました。

03-08 乱数っぽいなにか

ゲームを制作するときに乱数をよく使うらしい
乱数を生成するときは"rand関数" rand()は、0~RAND_MAXの間の値を返値とします。
「サイコロを2回投げて、その和を求めるプログラム」
※rand関数で乱数を生成し6で割る。その値は0~5なので+1する。
スクリーンショット 2019-02-26 22.17.16.png
実行結果
スクリーンショット 2019-02-26 22.17.53.png

※rand関数で乱数を生成しRAND_MAX+1で割ると0以上1未満の数字が出てくる。その解に*6をしてint型にすると0~5の数字になる。そこから最後に1を足す。
スクリーンショット 2019-02-26 22.27.50.png
実行結果
スクリーンショット 2019-02-26 22.27.30.png
RAND_MAXとは?
RAND_MAXとは、あらかじめ定義されている定数であり、具体的には215-1=32767です。

後者のほうが前者よりも均等に現れると書いているがなぜだろう?
高度な割り算をすることによって確率が変わるのか?
また、後者のほうが計算量が多いので一長一短とのこと。

RAND_MAXはintの最大値になるので、(double)(RAND_MAX + 1)にするとオーバーフローする

※何回実行しても同じ数字になる件について
スクリーンショット 2019-02-26 22.43.56.png
コンピュータは無茶苦茶な値を取り扱うことが苦手なので、乱数として不自然な挙動をする。
この乱数を擬似乱数という。
乱数を作るときはある初期値から乱数を生成する。その初期値を「乱数種」という。
乱数種を設定する関数は"srand()"
そして、時間と乱数種を組み合わせることでより正確な乱数を生成することができる。
スクリーンショット 2019-02-26 22.57.52.png
疑似乱数はMT(Mersenne Twister)法が一番質が高いらしい。

03-09

数学でよく使うライブラリの紹介

int abs 整数限定の絶対値
double fabs 少数限定の絶対値

double floor 小数第一位切り捨て
double celi  小数第一位切り上げ

double fmod(x,y) x/yの余り
double modf(x, p) xを整数部と小数部に分離 小数部はpに格納
ややこしいやつを書いた。

数値誤差によるバグにも注意

「型について」
基本double型でもいいが、処理速度が気になるときはfloatを使うときもある。
3dグラフィックを扱う場合など
将来的に3Dゲームを制作したいので使用用途に応じて型を書き分けられるように実践をたくさん積まないと!

03-10 オーバーロード

同じ関数名でも引数が違うと使うことができる。これを”オーバーロード”という。

良い例

int    A(int x)
double A(double x)

悪い例

int    Func(){return 0;}
double Func(){return 1;}
int    Func(){return 0;}
int    Func(){return 1;}

03-11 もっとロジカルに

bool型はtrue, falseしかとれない
0と1を使うよりtrue, falseを使うほうがわかりやすい

終わりに

今日はクラスまでやるつもりでしたができませんでした。
明日からはポインタ天国なので楽しみにして寝ます。
明日こそはクラスまでやる!
おやすみなさいzZZ

1
1
8

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?