C++μμ λλ€ν μ«μλ₯Ό μ»λ λ²μ μμλ³΄κ² μ΅λλ€.
μ°μ , μ ν¬κ° μ¬μ©ν ν¨μλ€μ΄ ν¬ν¨λ <cstdlib> ν€λλ₯Ό ν¬ν¨μν΅λλ€.
(μΆκ°μ μΈ μ 보λ https://en.cppreference.com/w/cpp/header/cstdlib μ μμ΅λλ€.)
#include <iostream>
#include <cstdlib> // cstdlib ν€λ μΆκ°
κ·Έλ¦¬κ³ μ ν¬κ° μνλ λλ€ μ«μμ λ²μλ₯Ό μ ννκΈ° μν λκ°μ§ λ³μλ₯Ό μ μΈν©λλ€.
μ λ μ£Όμ¬μμμ μ²λΌ 1κ³Ό 6μ κ³ λ₯΄κ² μ΅λλ€.
μ£Όμν μ μ 1κ³Ό 6μ΄ μ μΈλ 2-5μ λ²μκ° λμμ΄ μλκ³ , 1κ³Ό 6μ ν¬ν¨ν΄μ 1~6 μ¬μ΄μμ μ«μκ° κ²°μ λ©λλ€.
(μ΄λ¦μ μνμλλλ‘ νλ©΄ λ©λλ€.)
λ€μμΌλ‘λ λͺλ²μ μ«μλ₯Ό μΆλ ₯νκ³ μΆμμ§λ₯Ό μ μΈν©λλ€.
μ΄ λ°©λ²μ κΌ μ μΈμΌλ‘ νμ§ μλλΌλ forλ¬Έ λ± λ€μν λ°©λ²μ΄ μμΌλ,
μ΄ν΄νκΈ° μ½κ² λ³μ μ μΈμΌλ‘ νκ² μ΅λλ€.
int min {1}; // λλ€ μ«μ μ΅μ λ²μ
int max {6}; // λλ€ μ«μ μ΅λ λ²μ
int count {10} // μ΄ 10λ² λλ€ μ«μλ₯Ό λ°κ² μ΅λλ€.
λ€μμΌλ‘λ μ€μν λΆλΆμΈλ°, λλ€ ν¨μμ μλλ₯Ό μ§μ ν΄μΌν©λλ€.
μλλ₯Ό μ§μ ν΄μ£Όμ§ μμ μνλ‘ λλ€ ν¨μκ° ν¬ν¨λ νλ‘κ·Έλ¨μ μ¬μ©νκ² λλ©΄,
sequence, μ¦ μμκ° λμΌν λλ€ μ«μκ° κ³μ λμ΅λλ€.
λͺλ²μ΄κ³ νλ‘κ·Έλ¨μ μ€νν΄λ κ°μ κ²°κ³Όκ° λμ¨λ€λ λ»μ λλ€.
μ΄λ° λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄, μ€νν λ λ§λ€ λ°λλ μ λ³΄μΈ μκ° μ 보λ₯Ό μ΄μ©νκ² μ΅λλ€.
λ€μ μ²μμΌλ‘ λμκ°μ <ctime> ν€λλ₯Ό ν¬ν¨ν΄μ€λλ€.
ν΄λΉ ν€λλ timeκ³Ό κ°μ μκ°κ³Ό κ΄λ ¨λ ν¨μλ€μ μ¬μ©νκ² ν΄μ€λλ€.
#include <ctime>
κ·Έλ¦¬κ³ srand(time(nullptr)) μ ν΅ν΄ μ€νμλ§λ€ λ¬λΌμ§λ νμ¬ μκ°μ κΈ°λ°μΌλ‘ λλ€ μλλ₯Ό μ€μ ν©λλ€.
srand()λ λλ€ μλλ₯Ό μ€μ νλ μν μ λλ€.
time(nullptr))μ νμ¬ μκ°μ μ μλ‘ λ°νν©λλ€.
( time(0)μΌλ‘ μ¬μ©ν΄λ 무방ν©λλ€. )
srand(time(nullptr))
μ΄μ μλ μ€μ μ΄ λλ¬μΌλ λλ€ μ«μλ₯Ό λ°κΈ°λ§ νλ©΄ λ©λλ€.
μ΄ν, μκΉ μ€μ ν λλ€ μΆλ ₯ νμμΈ count μ λ§νΌ forλ¬Έμ λ°λ³΅μν€κ² μ΅λλ€.
κ·Έλ¦¬κ³ for λ¬Έ λ΄λΆμμ, rand() % max + min μ ν΅ν΄ λλ€ λλ²λ₯Ό λ°μ κ²μ λλ€.
rand()λ 0λΆν° RAND_MAX κΉμ§μ λλ€ μ μλ₯Ό λ°νν©λλ€.
(RAND_MAXκ°μ κΈ°κΈ°λ§λ€ λ€λ¦ λλ€. μ κ²½μ°λ 2147483647 μ΄λ€μ.)
μ¦ (0 - 2147483647) % max(6) = (0 ~ 5)μ κ°μ λλ€.
μ¬κΈ°μ μ°λ¦¬λ (1 ~ 6)μ κ°μ μ»κΈΈ μνκΈ° λλ¬Έμ, μ²μ μ€μ ν min κ°, 1μ λν©λλ€.
κ·Έλ¬λ©΄ (1 ~ 6)μ λλ€ κ°μ λ°μ μ μκ² μ£ ?
μ΄ λͺ¨λ κ±Έ ν©μΉ μ½λλ λ€μκ³Ό κ°μ΅λλ€.
#include <cstdlib>
#include <ctime>
#include <iostream>
using namespace std;
int main() {
int min{1};
int max{6};
int count{10};
srand(time(nullptr));
for (size_t i{1}; i <= count; i++) {
int rand_num{rand() % max + min};
cout << rand_num << endl;
}
return 0;
}
λλ€ μ«μλ₯Ό λ°μ λ, 'rand() ν¨μ μ΄μ μ srand(time(nullptr))λ‘ μλλ₯Ό μ§μ νλ€'
λ₯Ό μ΄ν΄νλ κ²μ΄ μ€μν μ½λμμ΅λλ€.
μ€ν κ²°κ³Ό
'C++ > κΈ°ν' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[C++] vscode λλ²κΉ μΈν κΈ°λ‘ (0) | 2023.12.23 |
---|---|
[C++] μΆκ°μ μΈ λ³μ μ μΈ μμ΄ κ° κ΅ννκΈ° (swap) (1) | 2023.12.19 |
[C++] <iomanip> setprecision(n) (0) | 2023.12.10 |
[C++] Compund Assignment Operator (0) | 2023.12.07 |
[C++] c++μμ boolean κ°μ true/falseλ‘ μΆλ ₯νκ³ μΆμ λ (0) | 2023.12.07 |