본문 바로가기

개발/php, javascript6

Int 난수 함수로 Float 난수 깔끔하게 발생시키기 php 에는 float 난수를 발생시키는 함수가 따로 없다. 그래서 int 난수 함수인 rand() 함수를 이용해 float로 변환해야 한다. 다음은 float 변수형의 최소, 최댓값을 인수로 받아 float 난수를 반환하는 함수이다. 자주 사용할것 같아 만들어 보았다. function randOnFloat($min, $max) { //최소,최대값중에 소수점 자리수가 더 큰쪽을 선택 $radix_min = radix($min); $radix_max = radix($max); $radix = $radix_min[front] > $radix_max[front] ? $radix_min : $radix_max; //입력된 float값을 int값으로 변환후 int난수를 발생시키고 다시 float로 변환한다 ret.. 2019. 12. 26.
삼각 분포로 난수 발생시키기 가우시안 분포 즉, 정규분포로 난수를 발생시켜야 하는 경우가 종종 있다. 하지만 우리가 흔히 사용하는 rand() 함수는 균일 분포로 난수를 가져오므로 따로 구현해야 한다. 다행히 정규분포 난수 발생 소스는 인터넷상에서 쉽게 구할수 있기 때문에 별 문제 될 건 없다. 한 가지 딴지를 걸자면 정규분포는 피 적분이 안되기 때문에 반복문을 사용해 난수를 만들어야 한다. 만약, 아주 많은 난수를 한꺼번에 발생시킨다면, 부하가 걸릴 수 있다는 말이다. 물론, 아주 쓸데없는 걱정이다. 그정도로 21세기의 컴퓨터는 나약하지 않다ㅎㅎ 어쨌거나 반복문이 없는 확률 밀도 기반 난수를 쓰고 싶다는 어리석은 생각에 다음과 같은 삼각 분포 난수 함수를 만들어 보았다. 삼각형 그래프는 정적분이 쉬워서 면적을 비율 삼아 난수를 발.. 2019. 10. 28.
삼각행렬로 연립방정식 단번에 구하기 학창 시절.. 행렬이 수학책의 첫 단원이라 본의 아니게 공부했던 기억이 있다. 아마 나만 그랬던 건 아닐 것이다ㅎㅎ 어잿든 십수 년 코딩을 해오면서도 이제야 왜 행렬이 첫 번째인지 그 깊은 뜻이 헤아려진다. 머리가 나빠서 이론은 건너뛰고 실전코딩부터 했던터라 지금까지 해 오던 것이 선형대수학의 내용인지조차 몰랐었다. 왜 필요한지도 모른채 행렬부터 공부하다 보니 연결이 어려웠던 걸까.. 주입식 교육의 폐해다ㅎㅎ 뒤늦게 다시 선형대수학을 공부하며 하나하나 정리해 가고 있는데.. 삼각행렬로 연립방정식을 구하는 손쉬운 방법을 소스로 만들어 보았다. php로 짰지만 다른 언어로도 쉽게 변경 가능하다. //삼각행렬 function triangularMatrix(&$matrix) { $j_count = count($.. 2019. 8. 19.
round()를 5의 배수로도 반올림 해보자 왜 반올림은 0으로만 할까? 0말고 다른수로도 반올림 해보는건 어떨까? 라는 생각을 가끔씩 해봤는데.. 솔직히 별 필요성을 느끼지 못했었다. 그런데 주식 관련한 로보어드바이저를 만들면서 필요해졌다. 호가를 찍을때 5단위가 되기 때문이다. 아래와 같이 php의 반올림 함수인 round()를 이용하여 5의 배수로 반올림 해주는 코드를 짜봤다. 원리는 굳이 설명안해도 될만큼 간단하다. 여기서 볼것은 round() 함수의 두번째 인수인 반올림 자릿수도 고려한다는 사실이다. 이러한 편리한 기능은 살려놔야 코딩하는 재미가 있다ㅎㅎ function roundCenter($price, $precision) { //지정한 자릿수로 반올림 (1) $round = round($price, $precision); //지정한 .. 2018. 11. 26.
php의 json_decode에서 null이 나올경우 살펴봐야 할점 php 5.2.1 이상이면 json이 기본으로 내장되어 있죠... 그중 json_decode 함수는 json문자열을 php배열을 바꾸어주는 기능을 합니다... 그런데 변환이 잘 되다가도 가끔씩 배열 대신 null이 나오는 경우가 있는데요... 제가 직접 php로 웹서버를 제작중에 null이 발생했던 경우는 다음과 같이 2가지 였습니다... 첫번째는 json문자열에 \"이 포함되어 있을때입니다...예를 들어 {\"name\":\"youngjin\"} 문자열을 json_decode로 바꾸고자 할때 null이 발생합니다...이경우는 클라이언트나 다른 서버에서 json문자열형태로 파라미터값을 받을때 종종 나타납니다... 해결책은 당연히 다음과 같이 \"를 "로 바꾸어주면 되겠죠^^ function getJson.. 2013. 11. 11.
javascript 로 애니메이션 움직임 만들기 jquery를 이용하면 웹에서도 멋진 동적 애니메이션을 쉽게 넣을수 있다. 하지만 이런 jquery를 가능하게 하는것은 역시 javascript다. 당연한말이지만 jquery는 javascript 기반의 라이브러리이기 때문이다... 즉, jquery로 할수 있는 모든 동작은 javascript로도 가능하는것이다.조금 어렵지만 말이다. 하지만 기본을 알면 무한발전이 가능한법~ㅎㅎ나는 jquery없이 javascript로 멋진 애니메이션을 만들어보기로 했다.. jquery라는 쉬운 도구가 있는데 왜 굳이 javascript로 뻘짓을 하느냐고 할수도 있겠지만 난 원래 뻘짓을 좋아한다ㅎㅎㅎ 애니메이션의 가장 기본적인 구조는 반복이다...게임엔진이 아닌 실제 코딩으로 게임을 만들어 본 사람은 알겠지만 게임과 같은.. 2013. 9. 2.