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

쓰지 말라는 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
과학자가 보는 세상  (4) 2010.06.12
그러고보니 오늘(어제?) 나로호를 쏘았죠  (4) 2010.06.11
꿈꾸는 공대생  (0) 2010.06.08
Posted by 덱스터

블로그 이미지
A theorist takes on the world
덱스터
Yesterday
Today
Total

달력

 « |  » 2024.3
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

최근에 올라온 글

최근에 달린 댓글

글 보관함