>  기사  >  컴퓨터 튜토리얼  >  재귀를 사용하여 Java에서 곡선 y=x와 직선 x=1의 제곱의 교차점을 계산합니다.

재귀를 사용하여 Java에서 곡선 y=x와 직선 x=1의 제곱의 교차점을 계산합니다.

WBOY
WBOY앞으로
2024-01-09 09:18:461303검색

Java의 재귀적 방법을 사용하여 곡선 y x의 제곱과 직선 x 1 x 축으로 둘러싸인 곡선 가장자리를 계산합니다

공개 수업 Util {

public static void main(String[] args) {

System.out.println(getMj(2000));

}

public static doublecalculateArea(double n){

if(n==1){

1.0을 반환합니다;

}그밖에{

더블 r = (n-1) * (n-1) * (n+1) * (2*n+1) / (n * n * n * (2*n-1));

return r*getMj(n-1);

}

}

}

재귀 알고리즘의 전제 조건은 일반 공식을 이해하는 것입니다. 2000은 곡선 삼각형을 2000개의 직사각형으로 나누는 것을 의미합니다. 구체적인 원리는 아래 그림에서 볼 수 있습니다.

在java中利用递归法计算曲线y x的平方与直线x 1

그림 1의 알고리즘 사용:

an=(n+1)(2n+1) /6n^2

간단하게 작성하는 방법은 다음과 같습니다.

공개 수업 Util {

public static void main(String[] args) {

System.out.println(getMj(100000));

}

public static doublecalculateArea(double n){

return (n+1)*(2*n+1)/(6*n*n);

}

}

자바 재귀 문제

(1) 재귀는 프로시저나 함수에서 자신을 호출합니다.

(2) 재귀 전략을 사용할 때는 재귀 종료라고도 하는 명확한 재귀 종료 조건이 있는지 확인해야 합니다.

재귀 알고리즘은 일반적으로 세 가지 유형의 문제를 해결하는 데 사용됩니다.

(1) 데이터의 정의는 재귀적으로 정의됩니다. (피보나치 함수)

(2) 문제 해결은 재귀 알고리즘에 따라 구현됩니다. (추적)

(3) 데이터의 구조적 형태는 재귀적으로 정의됩니다.

다음 예에서는 n의 계승을 재귀적으로 계산합니다.

공개 수업 테스트 {

public static int 계승(int n) {

if(n == 0){

반환 1;

}그밖에{

return n * 계승(n-1);

}

}

public static void main(String[] args) {

System.out.println(factorial(3));

}

}

Java 데이터 구조에서 반감기 검색의 재귀 알고리즘에는 전문가의 지도가 필요합니다!

패키지 소스;

공개수업 검색 {

public static boolean BinarySearch(int[] a, int x, int left, int right) { // 이진 검색의 주요 방법 // ... }

if (x == a[왼쪽] || x == a[오른쪽]) { return true; // 찾았으면 true를 반환합니다. }

(오른쪽-왼쪽)의 결과가 음수이면 오른쪽 값이 왼쪽 값보다 작다는 의미입니다. int mid = (왼쪽+오른쪽)/2 //그렇지 않으면 두 점

if(x == a[mid]) return true; // 중간 요소를 찾아 true를 반환합니다

그렇지 않으면{ //그렇지 않으면

x가 중간 요소보다 크면 이진 검색 함수(binarySearch)를 반환하고 계속해서 배열의 오른쪽 절반(a)에서 x를 검색합니다. 즉, binarySearch(a,x,mid+1,right) . 이를 통해 검색 범위를 좁히고 검색 효율성을 높일 수 있습니다.

else return binarySearch(a, x, left, mid-1); // 대상 값이 중간 요소보다 작으면 왼쪽 절반에서 계속 검색합니다.

}

}

public static final int[] sort(int[] a) { // 정수 배열을 정렬하는 데 사용되는 메서드입니다. // 버블 정렬, 삽입 정렬, 선택 정렬, 퀵 정렬 등 모든 정렬 알고리즘을 사용할 수 있습니다. // 여기서는 버블 정렬을 사용하여 배열을 정렬합니다. for (int i = 0; i

a[j + 1]) { // 요소 위치 바꾸기 int 온도 = a[j];

for (int i = 0; i

for (int j = 0; j if(a[i]

스왑(a,i,j);

}

}

}

반품;

}

private static void swap(int[] a, int i, int j) { //배열 a에서 첨자 i와 j 요소의 위치를 ​​바꾸는 전용 정적 함수 스왑을 정의합니다

int 온도 = a[i];

a[i] = a[j];

a[j] = 온도;

}

public static void print(int[] a) { //인쇄 함수 for (int i = 0; i System.out.println();

for (int i = 0; i

System.out.print(a[i]);

if(i!=a.length-1) { System.out.print(","); }

}

System.out.println();

}

public static void main(String[] args) { //테스트 방법

int[] a = {90, 12, 21, 32, 51, 78, 87, 98}은 8개의 정수를 포함하는 배열입니다.

print(sort(a));

System.out.println(binarySearch(sort(a), 40, 0, a.length-1));은 정렬된 배열 a에서 값이 40인 요소를 이진 검색하는 데 사용되는 코드입니다.

}

}

위 내용은 재귀를 사용하여 Java에서 곡선 y=x와 직선 x=1의 제곱의 교차점을 계산합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 docexcel.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제