왜인지 몰라도 하지 말라는 짓은 다 하고 있는 것 같다 -_-;;

쓰지 말라는 goto문을 활용하려는 중이고(쓰지 않아도 되지만 20byte도 안될 용량을 줄인다고...-_-;;)

절대로 쓰지 말라는 gets 함수를 string 입력에 사용하고 있고(그런데 이거 아니면 <space>가 포함된 string을 받을 방법이 없다. 확실히 불안정한 함수이긴 한데 입력문제는 루프로 해결했음.).



그것보다 좀 좋은 난수생성기 만드는 방법이 없을까?
500개 정도의 난수를 만들어서 50x50 grid에 찍어봤더니 무늬가 보인다. 점 분포가 균일하기는 한데 무늬가 보이면 난수생성기로는 낙제까지는 아니더라도 안 좋은 것 아닌가...-.-;;

int random(int i)//somehow successful, but seems to have patterns
{
srand(time(0));
if(i%2)i=(i*1103515245+12345);
else i=(i*1103515245+rand());
return (unsigned int)(i/65536)%32768;
}

지금 쓰는 난수생성기인데(인터넷에서 찾은 난수생성함수에 추가적인 난수가 들어가도록 살짝 손봤다.) 이 녀석만으로는 무늬가 너무 잘 나와서 경우를 나누어 난수생성기에 난수생성기를 두번 쓰거나 그대로 쓰거나 소수를 좀 더 더해서 쓰는 방식을 택하고 있다. 그래도 무늬가 보이는게 문제.

다음주 금요일까지 프로젝트 기간이니까 중간결과를 공개하기는 그렇고(어차피 오픈소스로 돌릴거지만 흔히 말하는 뉴스 엠바고라고 생각해 주시길..)[각주:1] 문제는 공개한다.



c언어로 세포가 점차 퍼저나가는 것을 시뮬레이션하는 프로그램 짜라. 전체 공간의 크기는 50x50개.

세포 주변의 4칸 이상이 다른 세포로 차 있으면 그 세포는 과잉밀집으로 사망.
세포 주변의 1칸 이하만 세포가 있으면 그 세포는 고립으로 사망.
세포 주변의 2~3칸에 이웃하는 세포가 있으면 그 지점에 세포가 자라난다.(살아있던 세포는 생존)

ex>

   ***
   ***

 
상태에서

   ***
  ** **
  ** **
   ***

빨간 애들은 인구밀도가 높아져서 사망. 다음에 죽을 애들을 빨간색으로 표시했다.(이웃이 넷 이상인 녀석들)

단, 이렇게 세포가 배치된 모양은 세개의 외부파일로부터 불러들여오거나 무작위로 생성하도록.
  1. 이미 프로그램의 틀은 다 짜였고 디버깅과 계산 알고리즘 개선, 용량 줄이는 작업을 수행중이다. 사실 140kb밖에 안 되는 용량이라 줄일 것도 없긴 하지만... [본문으로]

'Daily lives' 카테고리의 다른 글

뻥튀기  (0) 2010.06.16
짜증  (0) 2010.06.16
c언어 프로젝트를 하면서 느끼는건데  (4) 2010.06.12
과학자가 보는 세상  (4) 2010.06.12
그러고보니 오늘(어제?) 나로호를 쏘았죠  (4) 2010.06.11
꿈꾸는 공대생  (0) 2010.06.08
TAG

댓글을 달아 주세요

  1. Favicon of https://cjackal.tistory.com BlogIcon jackal_anu  댓글주소  수정/삭제  댓글쓰기

    LCG가 다 그렇죠 뭐 _-;;

    해보진 않았지만 위키를 뒤져보니 메르센느 소수를 이용한 방법이 있나 본데 한 번 시험해보세요 ㅎㅎ(http://en.wikipedia.org/wiki/Mersenne_twister)

    2010.06.12 19:40 신고
  2. 흑흑  댓글주소  수정/삭제  댓글쓰기

    혹시 이거 소스 좀 주실 수 없나요?ㅠㅠㅠㅠㅠ

    2010.06.20 20:26
  3. 흑흑  댓글주소  수정/삭제  댓글쓰기

    제발 부탁드립니다..ㅠㅠ
    저도 비슷한 프로젝트 하고있는데 어려워서 못하고 있어요ㅠㅠㅠ

    fruits13aske@naver.com 으로 부탁드려요..ㅠㅠㅠㅠ

    2010.06.20 20:32

1 ··· 170 171 172 173 174 175 176 177 178 ··· 815 

글 보관함

카운터

Total : 652,943 / Today : 3 / Yesterday : 316
get rsstistory!