공부/프로그래밍
-
스프링의 위치와 속도 구하기공부/프로그래밍 2017. 6. 11. 15:39
import numpy as np import math g = 9.81 N = 1000 tau = 20.0 dt = tau/float(N-1) SHOstate[0] : 늘어난거리, 위치 state[1] : 속도dv_dt 유도식 F = -mg -kx (탄성력) F = ma (뉴턴 제2법칙 가속도법칙) ma = -mg -kx a = -g -(kx/m) x(늘어난 거리)를 이용해서 가속도를 구해주는 것euler 함수에 들어갈 [속도, 가속도]를 구해준다def SHO(state, time): dx_dt = state[1] dv_dt = -k/m * state[0] - g return np.array([dx_dt, dv_dt]) euler1차 일반 미분 방정식의 해를 근사시켜준다… 결국 Yn+1을 Yn을 이용해서..
-
몬테카를로법으로 원주율 근사값 구하기공부/프로그래밍 2017. 6. 11. 15:31
from random import random, seed from math import sqrt Monte Carlo Method난수를 이용해 함수의 값을 확률적으로 계산하는 알고리즘 참고 url 몬테카를로 법을 이용해 pi의 근사값을 구해보자 반지름이 1인 원이 있다고 생각하자 ( $x^2 + y^2 = 1$ )이제 그 원안에 점들을 찍는다. 이때 난수가 사용된다. (점의 좌표 범위 : $ 0 \leq x \leq 1 , 0 \leq y \leq 1 $ )random 함수의 값은 float으로 0~1 사이의 값이 리턴된다. 원의 넓이는 $\pi r^2$이고 정사각형의 넓이는 $4r^2$이다. 따라서 원의 넓이를 정사각형의 넓이로 나누게 되면 $\frac{\pi}{4}$가 된다. 3번에서 구한 값에 4배..
-
binary 관련 간단한 정리공부/프로그래밍 2017. 3. 9. 21:46
binary 관련 간단한 정리 정수표현 정수타입에서 대부분 최상위 비트(Most Siginificant Bit)가 음수인지 정수인지를 구분한다는 것은 알고있을 것 이다. 나도 그냥 그렇게만 알고 음수표현은 양수에서 최상위 비트만 반전되는줄 알고 있었다. (하지만 그게 아니다..) 그러다 학교에서 친구가 파이썬에서 ‘~’ 가 뭐냐고 물어봐서 not이라고 대답해 주다가 이상한 부분을 발견했다. 0b101 을 not연산을 하게 되면 -0b110이 나오는 이상한 일이 일어난거다. 5 : 0b0101 !5 : 0b1010 내 생각으로는 최상위 비트가 1이고 나머지가 정수라면 -2가 되야한다고 생각했지만 음의 정수는 그렇게 표현하지 않는다. source code 0을 0b0000으로 두고 -1부터는 0b000에서 ..
-
Go variable export unexport & Gorp reflect panic공부/프로그래밍 2015. 7. 10. 02:20
Go에는 database를 편하게 사용 할 수 있는 Gorp라는 라이브러리가 존재한다. (https://github.com/go-gorp/gorp) 일단 여러가지 디비를 지원하고 기본적으로 go에 포함되어있는 sql라이브러리 보다 훨씬 편하다. 제일 좋은점은 struct를 만들어 두고 addtable하면 자동으로 테이블도 만들어주고 디비랑 맵핑해준다. 그런데 막상 이용해보면 Panics if any interface in the list has not been registered with AddTable 라고 뜨면서 화나게 만든다... 국내에는 Go lang을 질문해서 대답해 줄만한 곳이 없어서 stackoverflow에 질문했더니 역시나 바로 달아주신다. Go 에서는 대문자로 변수를 선언 하면 Expo..
-
Golang 변수 초기화 + func init공부/프로그래밍 2015. 6. 15. 10:04
최근 Go를 이용해 프로그래밍을 해보면서 신기한 경험을 많이하고 있다.db를 초기화 해주는 init함수를 만들어 놓고 사용하는 코드를 집어넣지도 않았는데 db가 초기화가 되어있다. 그리고 다른 것 또한 잘돌아간다. main에다 init함수 호출하는 코드를 넣었더니 오류가 난다. 이게 무슨일이지 하고 검색해보니 func init()같은 함수를 만들게 될 경우 main함수 호출 이전에 같은 패키지 안에 있는 init함수들을 호출해준다. 위에처럼 package level의 변수들 같은 경우 선언과 함께 초기화 된다.(단 자신이 초기화 하기위해 사용하는 변수들이 초기화 된 이후 초기화 된다.)변수들을 dependency analysis를 통해 패키지 레벨 변수들은 아직 초기화가 안된 상황에서 초기화를 준비한다...
-
Rust - cargo를 이용한 rust 프로젝트 관리 (Cargo 사용법)공부/프로그래밍 2015. 2. 21. 03:00
rust를 처음 시작하는데 cargo라는 처음 접하는 개념이 있었다.(물론 프로그래밍을 한지 얼마 안되서 그러는 거일수도)c++을 사용하면서 vs를 이용해 c++ 프로젝트를 관리해왔었는데 rust 같은 경우는 cargo를 이용해 컴파일과 프로젝트를 관리 할 수 도 있다. 그럼 기존 방식에 비해 carog를 이요한 프로젝트 관리가 얼마나 좋은지 한번 알아보자 http://doc.crates.io/guide.html
-
Turtle공부/프로그래밍 2014. 6. 24. 14:31
Colored By Color Scripter™123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596#include #include using namespace std; class Turtle{public: int stat; int x; int y; Turtle(); int stat_re(int ); int move(int );}; Turtle::Turtle(){ x = 0; y = 0; stat = 1;} int Turtle::sta..
-
이진탐색공부/프로그래밍 2014. 5. 20. 10:30
Colored By Color Scripter™12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061#include #define MAX_SIZE 10 int main(){ int num[MAX_SIZE] = {5,8,13,4,2,21,31,1,44,7}; int i,j, cmp,first=0,last=MAX_SIZE-1,tmp,half; for(i=0;i