rand()% n+1 하면 1부터 n까지 난수값을 구하는 거잖아여
근데 책에 설명이
1에서 n까지의 난수를 발생시키려면 함수 rand()를 이용하여 수식 rand()% n+1을 사용한다. 이를 일반화시켜
a에서 b까지의 난수를 발생시키려면 함수 rand()를 이용한 수식 rand()%(b-a+1) + a를 이용한다.
라는데
만약 a가 3이고 b가 6이라고 치면
(6-3+1)+3 이 되니까 3부터 4까지밖에 못구하잖아여
왜 a에서 b까지 난수를 구하는데 (b-a+1)+a를 써야해여?
제가 뭔가 잘못 이해하는건가여
수학은 존나못해서;
근데 책에 설명이
1에서 n까지의 난수를 발생시키려면 함수 rand()를 이용하여 수식 rand()% n+1을 사용한다. 이를 일반화시켜
a에서 b까지의 난수를 발생시키려면 함수 rand()를 이용한 수식 rand()%(b-a+1) + a를 이용한다.
라는데
만약 a가 3이고 b가 6이라고 치면
(6-3+1)+3 이 되니까 3부터 4까지밖에 못구하잖아여
왜 a에서 b까지 난수를 구하는데 (b-a+1)+a를 써야해여?
제가 뭔가 잘못 이해하는건가여
수학은 존나못해서;
b-a 를 뺀게 그 범위고 거기에 1을 / 그럼 예로 50에서 100이면 갭이 50인데 랜덤값을 %50하면 0~49만 나옴 그러기에 1을 더함 그럼 1~ 50이 나옴 거기에다 마지막에 a더하는건 그 범위를 복원 그래서 더하면 51부터 100까지 랜덤값이 나옴