본문 바로가기

개발 및 운영/프로그래밍30

C소스 - 소수구하기 2015.03.18. 19:46 알고리즘 숙제라서 짜봤는데 필요하신분 사용하세요~'에라토스테네스의 체' 란 알고리즘을 이용했습니다.다른 소스들을 보면 그냥 최대 수만큼 배열을 잡는데...저는 수 하나를 1bit로 잡았습니다. 어짜피 소수냐 아니냐만 구별하면 되니까요.이렇게 하면 메모리 용량을 8배 적게 사용합니다.물론 bit을 계산하는 부분에서 약간의 오버헤드가 있긴 합니다...ㅎ그래도 1억 까지의 소스를 계산하는데 2.5초정도가 걸리고 약 12MB의 메모리를 차지합니다.뭐 이정도면 괜찮은 거죠~ㅋ그런데 1억까지의 소수를 출력하는데만 몇분은 걸릴거 같네요..ㅎ #include #include #include int mygetbit(unsigned char *pPrimeNumber, int index) {.. 2015. 7. 31.
AVR에서 I2C Detect 2015.02.01. 14:54 AVR에서 I2C Device 탐지하는 소스입니다. 제가 필요해서 짜봤는데 혹시 필요하신분 있을까 해서 올립니다~ 우선 Scanning 부분. printf("SCANNING...\r\n"); for(i=0;i 2015. 7. 31.
WELL512 랜덤 알고리즘의 랜덤성? 확인&비교 2014.12.21. 23:40 WELL512와 rand의 랜덤성을 해 보았습니다. 소스는 이렇습니다. #include #include #include uint32_t state[16]; uint32_t index = 0; #define TESTMAX 131072 uint32_t myrand() { uint32_t a, b, c, d; a = state[index]; c = state[(index+13)&15]; b = a^c^(a 2015. 7. 31.
트위터 Streaming API 의 1%에 관해... 2014.10.26. 19:05 트위터 Streaming API 을 이용해서 빅데이터 분석프로그램을 만드는 중에... 트위터 Streaming API의 sample, filter는 firehose(전체트윗)의 1%정도만 제공한다고 한다.그런데 그 1%가 각각의 User(API)마다 다른 1%을 제공하는지...아님 전체에서 1%을 산출해서 모든 User(API)에게 제공하는건지...구글에서 찾아도 안나와서 직접 해보았다. 다른 계정으로 API Key을 2개 만들어서 같은 키워드로 filter.json을 통해 테스트를 해 보았는데(sample.json도 해봤는데 같다.)​결과는... 그리 원하던 결과는 아니었다. 같은 결과가 온다...서로 다른 1%을 산출한다면 좀더 많은 정보를 얻어서 빅데이터 분석에 활용.. 2015. 7. 31.
LoadLibrary시 4250 오류 해결방법 2014.06.04. 07:52 계속 만든 dll파일을 다른 프로그램에서 LoadLibrary로 로드할려고 하는데 4250오류가 발생했었습니다. 4250이 어떤 오류인지 보면...ERROR_NOT_APPCONTAINER4250 (0x109A)This operation is only valid in the context of an app container. 이라네요. 이 프로그램은 app container에서 작동한다.. 뭐 이런?....App container는 Windows8부터 나왔다는데 뭐 보안을 위한 어떠한 장치같습니다. 그런데 아무리 구글링을 해도 해경방법을 찾지 못했었습니다. 그런데.. 방금.. 우연히 원인을 알아냈네요. dll파일의 링커옵션에 /APPCONTAINER 이 있어서 그런겁니다.생.. 2015. 7. 31.
C++ FIFO (Queue) 구현 자주 쓸일이 있는데 그때마다 구현하게 되네요;; 그래서 올립니다~ 저두보고, 여러분도 보고~ㅎ #include #include #include #define FIFOBUFFERSIZE 64 unsigned char FIFOBuffer [ FIFOBUFFERSIZE ] ; volatile unsigned int FIFOFirst = 0 ; //Out volatile unsigned int FIFOLast = 0 ; //In bool FIFOisEmpty ( ) { return ( FIFOLast == FIFOFirst ) ; } bool FIFOisFull ( ) { return ( ( ( FIFOLast + 1 ) % ( FIFOBUFFERSIZE ) ) == FIFOFirst ) ; } void FIF.. 2015. 7. 31.
반응형