C言語でトランプゲームを作りたい
■ このスレッドは過去ログ倉庫に格納されています
0076デフォルトの名無しさん
2007/09/17(月) 23:28:51pos = rand();
// pos は 0 以上 1 未満の実数 (int pos ならキャストされて整数に)
pos = rand() / (RAND_MAX + 1.0);
// pos は 0 以上 N 未満の実数 (int pos ならキャストされて整数に)
pos = rand() / (RAND_MAX + 1.0) * N;
// pos は K 以上 N 以下の整数 (俺が正しいと思ってる書き方)
pos = K + (int)( rand() / (RAND_MAX + 1.0) * (N+1-K) );
int pos=(i+1.0) * rand() / (RAND_MAX + 1.0);
除算 "/" 演算は、被除数か除数の一方が float でもないと小数値を切り捨てる。
これは、(RAND_MAX + 1.0) で解消される。
(i+1.0) * rand() の 1.0 は 1 でもいいが、
rand()の値によっては、乗算をした瞬間にオーバーフローする可能性がある。
上に書いたように乗算を後からやれば問題ない。
■ このスレッドは過去ログ倉庫に格納されています