전체 글(217)
-
C언어 사용자정의함수와 포인터를 사용해서 내림차순
사용자 정의 함수는 void main이 아닌 곳에 정의해줍시다.필요한 사용자 정의 함수는 입력, 출력, 순서변환 함수이기때문에 각각 void InputData()void Display()void DecendingOrder()라고 정의 해주겠습니다. 그리고 배열과 포인터를 사용해서 값들을 전달해주기위해 void main(void)에 배열과 포인터를 정의해줍니다. {int n[5]; //배열만들기int *ptr; //포인터만들기ptr = &n[0] //포인터를 배열과 연결} 이제 만들어진 포인터를 각각의 함수들과도 연결시켜야 합니다. void InputData(int* ptr)void Display(int* ptr)void DecendingOrder(int* ptr) 이렇게하면 포인터 연결이 끝났습니다.이제..
2018.10.12 -
XOR게이트를 퍼셉트론으로 구현해보자
XOR 게이트 XOR게이트는 위와 같이 Output이 0110 임을 알 수 있습니다. 때문에 일반적인 퍼셉트론 알고리즘으로는 구현할 수 없습니다. 일단 아래 그림을 보고 차이점을 알아봅시다. OR게이트와 XOR게이트의 차이점 위의 그림을 보면 OR게이트와 XOR게이트의 차이점이 보입니다. OR은 퍼셉트론 하나만으로도 1과 0을 나눌수 있었지만 (선형)>단층 퍼셉트론으로 표현 가능 XOR은 불가능합니다. (비선형)>다층 퍼셉트론으로 표현 가능 그래서 등장한 것이 다층 퍼셉트론입니다. 쉽게 말하자면 선을 여러 개 긋는다는 것입니다. XOR게이트를 구현하기 위해서는 앞서 구했던 AND , NAND, OR 게이트 퍼셉트론이 필요합니다. AND 편향 사용 1 2 3 4 5 6 7 8 9 10 11 12 13 14..
2018.10.12 -
논리 회로를 퍼셉트론으로 구현하기(ft.파이썬)
구현해볼 논리 회로는 AND NAND OR XOR 이렇게 네가지 논리 회로입니다. 구현하기에 앞서서 각각의 논리 회로를 알아봅시다. 진리표를 보면 AND 게이트는 A와 B가 모두 1일때 output이 1이 됩니다. 퍼셉트론을 만들기 위해서는 가중치와 임계값을 주어야 합니다.예를들어 (w1, w2, 임계값)을 (0.5, 0.5, 0.7) 이렇게 준다고 하면조건이 만족할까요? 하나씩 해봅시다. 0 x 0.5 + 0 x 0.5 = 0.7보다 작거나 같은 값이기 때문에 0을 반환합니다.1 x 0.5 + 0 x 0.5 = 0.7보다 작거나 같은 값이기 때문에 0을 반환합니다.0 x 0.5 + 1 x 0.5 = 0.7보다 작거나 같은 값이기 때문에 0을 반환합니다.1 x 0.5 + 1 x 0.5 = 0.7보다 큰 ..
2018.10.09 -
퍼셉트론이란?
퍼셉트론알고리즘은 프랑크 로젠블라트가 1957년 고안한 알고리즘입니다.이 알고리즘은 딥러닝의 기원이 되는 알고리즘입니다. 퍼셉트론은 다수의 신호를 입력받아 하나의 신호를 출력합니다. 위의 그림을 보면 좀 더 쉽게 이해 할 수 있습니다.여러 input값이 하나의 output으로 향하고 있습니다. 그림은 1개의 뉴런으로 구성된 출력층을 나타낸 것입니다.뉴런의 개수는 늘어날수 있습니다. input의 x로 시작하는 값들은 입력 신호를 뜻합니다.output은 출력 신호입니다.w로 시작하는 값들은 가중치라는 값입니다. 이 가중치값들은 input의 입력신호를 output의 뉴런으로 보낼 때 입력 신호에 곱해지게 됩니다. x0 x w0x1 x w1x2 x w2.....이런식으로 곱해집니다.각각의 값들의 총합이 정해진 ..
2018.10.09 -
C언어 문자열배열 포인터로 역순출력
배열과 포인터 선언 및 연결char s1[256];char *p;p = s1; 문자열 입력gets(s1); 문자열 역순 출력for (int i = strlen(p) - 1; i > -1; i--) { printf("%c", p[i]);}위 코드에서 strlen(p)를 사용하여 문자열의 길이를 구한 후, i를 문자열의 마지막 인덱스에서 시작하여 i--를 통해 역순으로 출력합니다.for 루프에서 strlen(p) - 1을 사용하는 이유는 문자열의 마지막 인덱스가 문자열 길이보다 1 작기 때문입니다. 예를 들어, 길이가 5인 문자열의 마지막 인덱스는 4입니다.i > -1 조건은 인덱스가 0까지 포함되도록 하기 위함입니다.printf("%c", p[i])를 통해 인덱스 i에 해당하는 문자를 출력합니다. ..
2018.10.04 -
C언어 포인터로 문자배열을 복사하기
우선 문자열 배열을 만들어야겠죠? char s1{256]char s2{256] s1배열을 s2로 복사하기위해 포인터를 만들어줍니다. char *from, *to; from과 to라는 포인터를 만들어줬습니다.다음으로 할 일은 포인터와 문자열을 연결시켜주는 일입니다. from = s1;to = s2; 이런식으로 하면 각각의 포인터들이 배열에 연결됩니다. 문자열을 입력받을껀데 gets함수를 사용해서 입력받습니다. gets_s(s1); 이렇게 하면 엔터를 칠 때까지 문자열들이 s1배열에 모두 들어갑니다. 마지막으로 복사만 해주면 끝납니다. while 문을 써서 복사를 해봅시다. while(*from !='\0') //*from 과 '\0' 가 다르면 참, 그렇지 않으면 거짓 즉 NULL까지 가면 while문 종..
2018.10.04