방향 그래프가 제공됩니다. 또 다른 두 꼭짓점 u와 v도 제공되며 u는 시작 꼭짓점이고 v는 끝 꼭짓점입니다. 우리의 임무는 꼭짓점 u에서 v까지 정확히 k개의 모서리를 가진 여러 도보를 찾는 것입니다. k 값도 알고리즘에 제공됩니다. 동적 프로그래밍을 사용하여 행이 u 값을 가리키고 열이 v 값을 가리키고 깊이가 처음부터 끝까지 가장자리 수를 추적하는 데 사용되는 3D 테이블을 만들어야 합니다. 입력 및 출력 입력:그래프의 인접 행렬:대상 정점은 3입니다. K =20 1 1 10 0 10 0 0 10 0 0 0출력:2개의 가장자
두 개의 숫자가 이진 문자열로 제공되며, 우리의 임무는 더 빠르고 효율적인 방법으로 해당 숫자에 대한 곱셈 결과를 찾는 것입니다. Divide and Conquer 전략을 사용하여 매우 효율적인 방식으로 문제를 해결할 수 있습니다. 숫자를 반으로 나누겠습니다. Xleft와 Xright는 첫 번째 숫자 X의 두 부분이고 Yleft, Yright는 두 번째 숫자 Y의 두 부분입니다. 따라서 제품; 간단하게 하기 위해 이 작업을 수행할 수 있습니다. 입력 및 출력 Input: Two binary numbers: 1101
이 알고리즘은 주어진 숫자를 영어 단어로 변환합니다. 564처럼 오백육십사(Five Hundred and Sixty-Four)가 됩니다. 이 알고리즘의 경우 사전 정의된 일부 문자열이 제공되며 해당 목록에서 단어로 만들 적절한 단어를 가져옵니다. 목록은 다음과 같습니다. 단위: Zero, One…Nine과 같이 (0에서 9까지)에 대한 모든 단어를 보유합니다. 두자리: Ten, eleven… tenMul: 10배의 경우 (20-90), 예를 들어 Twenty, Thirty, ... Ninety. 텐파워: 10의 2와 3의
하나의 행렬이 제공됩니다. 매트릭스는 한 화면을 나타냅니다. 화면의 각 요소(i, j)는 픽셀로 표시되며 해당 픽셀의 색상은 다른 숫자로 표시됩니다. 이 알고리즘에서 픽셀은 이미 선택된 이전 색상에 있을 때 새 색상으로 채워집니다. 이전 색상이 이전 색상이 아니면 해당 픽셀이 채워지지 않습니다. 픽셀을 채운 후 위, 아래, 왼쪽 및 오른쪽 픽셀이 동일한 작업을 수행하는지 확인합니다. 아이디어는 정말 간단합니다. 먼저 선택한 위치가 이전 색상으로 색칠되어 있는지 여부를 확인합니다. 그렇지 않으면 알고리즘이 작동하지 않습니다. 그렇지
4부터 모든 짝수는 두 소수의 합으로 표현할 수 있습니다. 때때로 숫자는 소수 조합의 합이 두 개 이상일 수 있습니다. 예를 들어 숫자 10 =(5 + 5) 및 (7 + 3) 이 알고리즘은 주어진 숫자에 대한 모든 소수의 조합을 찾습니다. 하나의 숫자 x가 소수이면 (숫자 - x)가 소수인지 여부만 확인합니다. 그렇다면 x와 (숫자 - x)의 합은 짝수를 나타냅니다. 입력 및 출력 Input: Even number: 70 Output: Prime sums 70 = 3 + 67 70 = 11 + 59 70 = 17 + 53 70
볼록 껍질은 주어진 모든 데이터 포인트를 포함할 수 있는 최소 폐쇄 영역입니다. Graham의 스캔 알고리즘은 볼록 껍질의 모서리 지점을 찾습니다. 이 알고리즘에서는 처음에 가장 낮은 지점을 선택합니다. 그 점은 볼록 껍질의 시작점입니다. 나머지 n-1 정점은 시작점에서 반시계 방향을 기준으로 정렬됩니다. 2개 이상의 점이 같은 각을 형성하고 있는 경우 시작점에서 가장 먼 점을 제외하고 같은 각의 모든 점을 제거합니다. 나머지 포인트에서 스택으로 푸시합니다. 그리고 스택 맨 위 포인트, 두 번째 맨 위 포인트 및 새로 선택한 포
Jarvis March 알고리즘은 주어진 데이터 포인트 세트에서 볼록 껍질의 모서리 포인트를 감지하는 데 사용됩니다. 데이터 세트의 가장 왼쪽 지점에서 시작하여 시계 반대 방향으로 회전하여 볼록 껍질의 지점을 유지합니다. 현재 지점에서 현재 지점에서 해당 지점의 방향을 확인하여 다음 지점을 선택할 수 있습니다. 각도가 가장 클 때 점이 선택됩니다. 모든 포인트를 완료한 후 다음 포인트가 시작 포인트가 되면 알고리즘을 중지합니다. 입력 및 출력 Input: Set of points: {(-7,8), (-4,6), (2,6), (6,
데이터 세트에서 이 알고리즘은 배열의 가장 큰 요소부터 k번째로 큰 요소까지 찾습니다. 이 문제는 배열을 정렬하면 쉽게 해결할 수 있습니다. 오름차순 또는 내림차순으로 정렬할 수 있습니다. 내림차순으로 풀면 결과를 찾기 위해 처음 k개의 요소를 얻을 수 있습니다. 입력 및 출력 입력:배열의 요소:{1, 23, 12, 9, 30, 2, 50, 63, 87, 12, 45, 21}, K =4출력:4개의 가장 큰 요소는 87 63 50 45 알고리즘 kthLargestElement(배열, n, k) 입력: 배열, 배열의 요소 수는 k를
결정론적 유한 자동화(DFA)는 숫자가 다른 숫자 k로 나눌 수 있는지 여부를 확인하는 데 사용됩니다. 나눌 수 없는 경우 이 알고리즘은 나머지도 찾습니다. DFA 기반 디비전의 경우 먼저 DFA의 전환 테이블을 찾아야 하는데, 그 테이블을 사용하면 쉽게 답을 찾을 수 있습니다. DFA에서 각 상태에는 2개의 전환 0과 1만 있습니다. 입력 및 출력 Input: The number: 50 and the divisor 3 Output: 50 is not divisible by 3 and remainder is: 2 알고리즘 dfaD
이 문제에서는 두 개의 숫자가 제공됩니다. 그 숫자의 밑은 n입니다. 우리는 n진법에서도 덧셈을 한 후 그 숫자의 결과를 찾아야 합니다. 처음에는 숫자가 십진수로 변환됩니다. 십진수 값에서 간단히 더할 수 있습니다. 마지막으로 숫자는 다시 n진수로 변환됩니다. n개의 기수는 문자열로 주어집니다. 기수가 9보다 큰 숫자의 경우 16진수와 같이 숫자를 나타내는 일부 알파벳이 포함될 수 있으므로 6개의 문자(A-F)가 있기 때문입니다. 입력 및 출력 Input: The base of a number system: 16 Fi
제곱근을 구하는 바빌로니아 방법은 비선형 방정식을 풀기 위한 Newton-Raphson 방법을 기반으로 하는 수치 방법 중 하나를 기반으로 합니다. 아이디어는 간단합니다. 임의의 x 값에서 시작하여 y를 1로 하여 x와 y의 평균을 찾아 루트의 다음 근사값을 간단히 얻을 수 있습니다. 그러면 y 값이 number / x로 업데이트됩니다. 입력 및 출력 Input: A number: 65 Output: The square root of 65 is: 8.06226 알고리즘 sqRoot(number) 입력: 실제 숫자입니다. 출력:
컴퓨터에서 변수는 메모리 위치에 저장됩니다. 그러나 메모리 위치의 크기는 고정되어 있으므로 15와 같은 더 큰 값의 계승을 찾으려고 할 때! 또는 20! 계승값이 메모리 범위를 초과하고 잘못된 결과를 반환합니다. 큰 수를 계산하려면 결과를 저장하기 위해 배열을 사용해야 합니다. 배열의 각 요소에서 결과의 다른 자릿수를 저장합니다. 그러나 여기서는 일부 숫자를 배열에 직접 곱할 수 없으며 결과 배열의 모든 자릿수에 대해 수동 곱셈 프로세스를 수행해야 합니다. 입력 및 출력 Input: A big number: 50 Output: F
이 문제에서는 하나의 다각형이 주어지고 점 P도 주어집니다. 포인트가 폴리곤 내부에 있는지 폴리곤 외부에 있는지 확인해야 합니다. 그것을 풀기 위해 우리는 점 P에서 직선을 그릴 것입니다. 그것은 무한대로 확장됩니다. 선은 수평이거나 x축과 평행합니다. 그 선에서 우리는 선이 다각형의 측면과 교차하는 횟수를 계산합니다. 점이 다각형 내부에 있을 때 측면과 홀수번 교차합니다. P가 다각형의 어느 측면에든 배치되면 짝수번 절단됩니다. 조건 중 어느 것도 참이 아니면 폴리곤 외부에 있는 것입니다. 입력 및 출력 Input: Point
숫자의 제곱근이 정수인 경우 해당 숫자를 완전제곱수라고 합니다. 즉, 제곱근이 정수일 때 그 수를 완전제곱수라고 합니다. 그 수의 제곱근을 찾아서 완전제곱수를 확인하고 i와 계속해서 일치시켜 정확한 제곱근을 얻을 수 있습니다. 제곱근이 값과 교차하면 완전제곱수가 아닙니다. 하지만 여기서는 노력을 줄이기 위해 제곱근을 반복해서 확인하지 않았습니다. 완전제곱수의 제곱근이 정수라는 것을 알고 있으므로 제곱근을 1씩 증가시켜 완전제곱수가 맞는지 확인할 수 있습니다. 입력 및 출력 Input: A number to check: 1032
2D 평면에서는 4개의 점이 제공됩니다. 이 알고리즘은 4개의 점이 정사각형을 형성하는지 여부를 확인합니다. 다음 조건과 일치해야 하는 사각형을 확인하는 중 - 주어진 점으로 이루어진 네 변은 모두 동일합니다. 연결하는 두 면이 모두 직각입니다. 입력 및 출력 Input: Four points {(20, 10), (10, 20), (20, 20), (10, 10)} Output: Points are forming a square. 알고리즘 isFormingSquare(p1, p2, p3, p4) 이 절차에서는 squareDi
두 세트는 공통 요소가 없을 때 분리된 세트입니다. 즉, 두 집합의 교집합을 얻으면 null 집합이 됩니다. 방법은 간단합니다. 이 알고리즘에서는 두 세트가 제공됩니다. 두 세트가 이미 정렬되어 있다고 가정하고 두 세트 간에 항목을 비교합니다. 일치하는 항목이 있으면 disjoint 집합이 아니고 일치하는 항목이 없으면 disjoint 집합입니다. 입력 및 출력 Input: Two sets: set1: {15, 12, 36, 21, 14} set2: {7, 89, 56, 32} Output: Both sets are disjoin
두 개의 라인 세그먼트가 주어집니다. 첫 번째 선분에서 점 p1, p2, 두 번째 선분에서 q1, q2. 두 선분이 교차하는지 여부를 확인해야 합니다. 다음 경우가 충족되면 두 선분 모두 교차한다고 말할 수 있습니다. (p1, p2, q1)과 (p1, p2, q2)의 방향이 다르고 (q1, q2, p1) 및 (q1, q2, p2) 방향이 다릅니다. 또 다른 조건은 (p1, p2, q1), (p1, p2, q2), (q1, q2, p1), (q1, q2, p2)가 공선일 때입니다. 입력 및 출력 Input:두 선분의 점Line
삼각형의 세 점이 주어집니다. 점 P가 삼각형 안에 있는지 여부를 확인하기 위해 다른 점 P도 제공됩니다. 문제를 해결하기 위해 삼각형의 점 A, B, C를 고려합니다. 삼각형 Δ𝐴𝐵𝐶 =Δ𝐴𝐵𝑃 + Δ𝑃𝐵𝐶 + Δ𝐴𝑃𝐶일 때 점 P는 삼각형 내부에 있습니다. 입력 및 출력 Input: Points of the triangle {(0, 0), (20, 0), (10, 30)} and point p (10, 15) to check. Output: Point is inside the triangle. 알고리즘 i
시컨트 방법은 비선형 방정식을 풀 때도 사용됩니다. 이 방법은 Newton-Raphson 방법과 유사하지만 여기서는 f(x) 함수의 미분을 찾을 필요가 없습니다. f(x) 만 사용하면 Newton의 Divide 차이 공식을 사용하여 수치적으로 f(x)를 찾을 수 있습니다. Newton-Raphson 공식에서 우리는 알고 있습니다. 이제 나누기 차분 공식을 사용하여 다음을 얻습니다. Newton-Raphson 공식의 f(x)를 새로운 f(x)로 바꾸면 비선형 방정식을 풀기 위한 시컨트 공식을 찾을 수 있습니다.
정적분은 이 사다리꼴 규칙을 사용하여 풀 수 있습니다. 범위 a에서 b 사이에 함수 f(x)를 적분하는 것은 기본적으로 점 x =a에서 x =b까지 곡선 아래 영역을 찾는 것입니다. 해당 영역을 찾기 위해 영역을 n개의 사다리꼴로 나눌 수 있으며 각 사다리꼴의 너비는 h이므로 (b - a) =nh라고 말할 수 있습니다. 사다리꼴의 수가 많을수록 면적 계산 결과가 더 정확해집니다. 적분을 풀기 위해 우리는 이 공식을 따를 것입니다. 여기서 h는 간격의 너비이고 n은 간격의 수입니다. 를 사용하여 h를 찾을 수 있습니다. 입력