// 乱数を使ってみよう // ポイント1.srand関数で乱数を初期化する // 初期化しないと、毎回同じ乱数列を取得してしまいます。 // ポイント2.rand関数で擬似乱数を取得する // rand()関数の戻り値が擬似乱数なので、お好きなように // ポイント3.余りを求める事で、乱数の範囲を自分の好みに調整できます // rand() % 6; // サイコロ風 0 ~ 5 // rand() % 100; // 百分率 0 ~ 99 // rand() % 80 + 20; // 20 ~ 99 半端な範囲を求める時は、余りを求めて少し数字を足します // rand() % 24; // 手持ちの24個の駒から、ランダムに動かす駒を決めたりもできます // if (rand() % 100 < 20) { ... } // 20%の確率で発生するイベントの管理 // if (rand() % 100 < x) { ... } // 確率x(0 ~ 100%)で発生するイベントの管理 #include <stdio.h> #include <stdlib.h> #include <time.h> #include <limits.h> int main(void) { int i, r, x, c; // ポイント1.srand関数で乱数を初期化する // ポイント2.rand関数で擬似乱数を取得する // 無加工 0~RAND_MAX for (i = 0; i < 10; i++) { } // ポイント3.余りを求める事で、乱数の範囲を自分の好みに調整できます // rand() % 6; // サイコロ風 0 ~ 5 for (i = 0; i < 10; i++) { } // rand() % 100; // 百分率 0 ~ 99 for (i = 0; i < 10; i++) { } // rand() % 80 + 20; // 20 ~ 99 半端な範囲を求める時は、余りを求めて少し数字を足します for (i = 0; i < 10; i++) { } // rand() % 24; // 手持ちの24個の駒から、ランダムに動かす駒を決めたりもできます for (i = 0; i < 3; i++) { } // if (rand() % 100 < 20) { ... } // 20%の確率で発生するイベントの管理 c = 0; for (i = 0; i < 100; i++) { c++; } } // if (rand() % 100 < x) { ... } // 確率x(0 ~ 100%)で発生するイベントの管理 c = 0; for (i = 0; i < 100; i++) { c++; } } return EXIT_SUCCESS; }
Standard input is empty
無加工 0~2147483647 1637195378, 1712932808, 585138002, 944662766, 861186343, 924748841, 1615196783, 156287876, 281320575, 1671351530, サイコロ風 0~5 4, 3, 4, 0, 0, 0, 1, 3, 5, 3, 100分率 0~99 23, 88, 37, 81, 48, 80, 35, 79, 46, 62, 半端な範囲 20~99 42, 73, 85, 63, 68, 77, 59, 52, 44, 34, 19番の駒を動かします 18番の駒を動かします 8番の駒を動かします 20%の確率で発生するイベントです。 !!!!!!!!!!!!!!!!!!! 100回中19回イベントが発生しました。 97%の確率で発生するイベントです。 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 100回中96回イベントが発生しました。