Invite Request
[Math] 피보나치수열 [Fibonacci sequence]
수열이란 수를 규칙적으로 연이어 나열하는 것을 말한다. 수열에는 그 종류가 상당히 많은데, 그 중 하나가 피보나치 수열이다.
피보나치 수열은 첫번째 수를 0 그리고 두번째 수를 1로 정하고 세번째부터는 그 전의 두 개항을 더해서 정하는 규칙을 가진 수열을 말합니다.
예를 들면 처음이 0 이고 두번째가 1이면 세번째는 0과 1를 합한 1이며, 네번째는 1와 1을 합한 2가 되고 다섯번째는 1과 2가 합쳐진 3이 됩니다. 이를 나열해 보면 0, 1, 1, 2, 3, 5, 8, 13, .......의 수열이 됩니다.
[코드]
[결과]
또는
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <stdio.h> int Fibo(int n) { if(n==1) return 0; else if(n==2) return 1; else return Fibo(n-1)+Fibo(n-2); } int main(void) { int i; for(i=1; i<15; i++) printf("%d ", Fibo(i)); return 0; } |
'0x0002 > Math' 카테고리의 다른 글
[Math] 삼각함수 (0) | 2019.02.25 |
---|---|
[Math] 팩토리얼(Factorial) (0) | 2019.02.25 |
[Math] 삼각함수
'0x0002 > Math' 카테고리의 다른 글
[Math] 피보나치수열 [Fibonacci sequence] (0) | 2019.02.25 |
---|---|
[Math] 팩토리얼(Factorial) (0) | 2019.02.25 |
[Math] 팩토리얼(Factorial)
1부터 어떤 양의 정수 n까지의 정수를 모두 곱한 것을 말하며 n!로 나타낸다. 0!=1로 약속하고,
n이 대단히 큰 경우 스털링의 공식을 써서 근삿값을 구할 수 있다.
1부터 n개의 양의 정수를 모두 곱한 것을 n계승이라 하고, n!로 나타낸다. 즉, n! = 1×2×3×……×(n-1)×n이다. n은 보통 양의 정수 범위에서 주어진다.
n!=n×(n-1)!의 성질에서 n이 1일 때 1=1×0! 이 되므로 0!=1로 약속한다. |
[코드]
[결과]
또는
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include <stdio.h> int Factorial(int n) { if(n==0) return 1; else return n * Factorial(n-1); } int main(void) { printf("1! = %d \n", Factorial(1)); printf("2! = %d \n", Factorial(2)); printf("3! = %d \n", Factorial(3)); printf("4! = %d \n", Factorial(4)); printf("9! = %d \n", Factorial(9)); return 0; } |
'0x0002 > Math' 카테고리의 다른 글
[Math] 피보나치수열 [Fibonacci sequence] (0) | 2019.02.25 |
---|---|
[Math] 삼각함수 (0) | 2019.02.25 |
[DirectX 수학] 내적 과 외적
'0x0004 > DirectX' 카테고리의 다른 글
[DirectX 기초] 벡터와 스칼라 (0) | 2019.02.23 |
---|---|
[DirectX 기초] 3차원 좌표계 (3D coordinate system) (0) | 2019.02.23 |
[DirectX 기초] 벡터와 스칼라
- 벡터 : 크기와 방향을 갖는 물리량. (가속도, 속도 등의 크기와 방향을 동시에 표현해야하는 수치)
- 스칼라 : 크기만 갖는 물리량. (기압, 속력 등의 단일한 숫자 표기, 방향이 없다!)
벡터는 3차원 그래픽스 상에서 은면제거(backface-culling)나 음영(shading)등에 주로 사용된다.
아래 그림은 2차원 평면 상에서 원점 O(0, 0)을 기준으로 점 P(x, y)를 향하는 벡터 OP를 나타낸 것이다.
그리고 아래 그림은 3차원 공간 상에서 원점 O(0, 0)을 기준으로 점 Q(x, y, z)를 향하는 벡터 OQ를 나타낸 것이다.
'0x0004 > DirectX' 카테고리의 다른 글
[DirectX 수학] 내적 과 외적 (0) | 2019.02.23 |
---|---|
[DirectX 기초] 3차원 좌표계 (3D coordinate system) (0) | 2019.02.23 |
[DirectX 기초] 3차원 좌표계 (3D coordinate system)
- 왼손 좌표계란 아래 그림과 같이 양(+)의 Z축이 모니터의 안쪽으로 들어가는 방향을 말한다.
- D3D에서는 왼손 좌표계를 사용한다.
- OpenGL에서는 왼손, 오른손 좌표계를 선택적으로 사용할 수 있다.
Direct X 의 왼손 좌표계를 기준으로한 회전공식 |
// Z축에 의한 회전
float DeltaX = ( x * cos(q) ) + ( y * sin(q) );
float DeltaY = -( x * sin(q) ) + ( y * cos(q) );
// Y축에 의한 회전
float DeltaX = ( x * cos(q) ) - ( z * sin(q) );
float DeltaZ = ( x * sin(q) ) + ( z * cos(q) );
// X축에 의한 회전
float DeltaY = ( y * cos(q) ) + ( z * sin(q) );
float DeltaZ = -( y * sin(q) ) + ( z * cos(q) );
'0x0004 > DirectX' 카테고리의 다른 글
[DirectX 수학] 내적 과 외적 (0) | 2019.02.23 |
---|---|
[DirectX 기초] 벡터와 스칼라 (0) | 2019.02.23 |
[C# Error] 클래스를 배열로 할당할때 생성자가 실행되지 않는다.
class CLASS
{
public int a;
public CLASS()
{
Console.WriteLine("CLASS");
}
}
class Program
{
static void Main(string[] args)
{
CLASS[] c;
c = new CLASS[10];
c[0].a = 10; //<=개체 참조가 개체의 인스턴스로 설정되지 않았습니다. 라고 예외발생
Console.ReadKey();//CLASS가 전혀 출력되지 않는다.
}
}
☆ 이유 ☆
c = new CLASS[10]; 에서 c는 10개의 칸을 가진 CLASS 타입의 배열 객체이지만 이 배열 안의 CLASS는 각각은 인스턴스화가 안되서 객체가 아니다.
☆ 해결법 ☆
c[0] = new CLASS(); ......각각 할당시켜줘야 한다.
참고
http://nuberus.blog.me/50182739063