#include<time.h>

#include<stdio.h>


#define MULTIPLIER 25173

#define INCREMENT 13849

#define MODULUS 65536

#define inital_seed (unsigned)time(NULL)

static unsigned seed = 17;





unsigned randomnumber()

{



seed = (MULTIPLIER *seed + INCREMENT) % MODULUS;


return seed;


}



int main()

{

   int i;

   for (i = 0; i < 9; i++)

{

printf("%d ", randomnumber);

}


return 0;

}



seed에 시간함수를 넣고 싶은데 자꾸 상수형에 함수 집어넣을 수 없다는 오류가 떠서 일단 17로 초기값을 지정해 보았습니다.

시간을 못넣는건 일단 둘째로 치고,(이거 해결해 주실 수 있으신가요 ㅠㅠ)


제 생각에 seed를 static으로 해주었고


랜덤넘버 함수에서 seed값을 계쏙 새로 넣어주니까 


for반복문 돌리면 seed값이 계속 바뀌어야될텐데


10개가 똑같은 수만 나오네요.


그리고 17로 초기값ㅇ르 고정하면 난수가 실행시킬때마다 똑같은게 나와야 된다고


알고있는데, 다른 수가 나오구요!!


도대체 뭘까요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ







-------------------


#define initial_seed (unsigned)time(NULL)

static unsigned seed = initial_seed;


이게 원하는 최종 seed 인데 여ㅣ선 두번째줄이 상수 식에 함수 호출을 할 수 없다고 떠서요 ㅠㅠ 그래서 이니셜 시드 17로 해보고도 돌린건데 저지랄 후