Calculer l'intersection du carré de la courbe y=x et de la droite x=1 en Java par récursion

WBOY
Libérer: 2024-01-09 09:18:46
avant
1287 Les gens l'ont consulté

Utilisez la méthode récursive en Java pour calculer le carré de la courbe y x et le bord incurvé entouré par la droite x 1 axe x

classe publique Util {

public static void main(String[] args) {

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

}

public statique double calculateArea(double n){

si(n==1){

retour 1.0 ;

}autre{

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

retour r*getMj(n-1);

}

}

}

La condition préalable à l'algorithme récursif est de comprendre sa formule générale 2000 signifie diviser le triangle courbe en 2000 rectangles. Le principe spécifique est visible dans la figure ci-dessous :

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

En utilisant l'algorithme de la figure 1 :

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

La façon simple de l'écrire est la suivante :

classe publique Util {

public static void main(String[] args) {

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

}

public statique double calculateArea(double n){

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

}

}

Problème de récursion Java

(1) La récursivité s'appelle dans une procédure ou une fonction

 ;

(2) Lorsque vous utilisez une stratégie récursive, vous devez vous assurer qu'il existe une condition de fin de récursion claire, également connue sous le nom de sortie récursive.

Les algorithmes récursifs sont généralement utilisés pour résoudre trois types de problèmes :

(1) La définition des données est définie de manière récursive. (Fonction Fibonacci)

(2) La solution du problème est implémentée selon l'algorithme récursif. (Retraçage)

(3) La forme structurelle des données est définie de manière récursive.

L'exemple suivant calcule la factorielle de n de manière récursive.

Test en classe publique {

public static int factoriel(int n) {

si(n == 0){

retour 1;

}autre{

retour n * factoriel(n-1);

}

}

public static void main(String[] args) {

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

}

}

L'algorithme récursif de réduction de moitié de la recherche dans la structure de données Java nécessite les conseils d'un expert !

source du colis ;

Recherche de classe publique {

Recherche binaire booléenne statique publique (int[] a, int x, int gauche, int droite) { // Méthode principale de recherche binaire //... }

if (x == a[gauche] || x == a[droite]) { return true; // Trouvé, renvoie true }

Si le résultat de (droite-gauche) est un nombre négatif, cela signifie que la valeur de droite est inférieure à la valeur de gauche. .

int mid = (gauche+droite)/2; //sinon : deux points

if(x == a[mid]) return true; // Trouve l'élément du milieu et renvoie true

sinon{ //sinon

Si x est supérieur à l'élément du milieu, renvoyez la fonction de recherche binaire (binarySearch) et continuez à rechercher x dans la moitié droite du tableau (a), c'est-à-dire binaireSearch(a,x,mid+1,right) . Cela peut restreindre la portée de la recherche et améliorer l’efficacité de la recherche.

else return binaireSearch(a, x, left, mid-1); // Si la valeur cible est inférieure à l'élément du milieu, continuez la recherche dans la moitié gauche.

}

}

public static final int[] sort(int[] a) { // Il s'agit d'une méthode utilisée pour trier un tableau d'entiers // Vous pouvez utiliser n'importe quel algorithme de tri, tel que le tri à bulles, le tri par insertion, le tri par sélection, le tri rapide, etc. // Ici, nous utilisons le tri à bulles pour trier le tableau pour (int i = 0; i a[j + 1]) { // Permuter les positions des éléments int temp = a[j];

for (int i = 0; i

for (int j = 0; j

si(a[i]

échanger(a,i,j);

}

}

}

retourner un ;

}

private static void swap(int[] a, int i, int j) { //Définissez un swap de fonction statique privé pour échanger les positions des éléments indicés i et j dans le tableau a

int temp = a[i];

a[i] = a[j];

a[j] = temp;

}

public static void print(int[] a) { //Fonction d'impression pour (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) { //Méthode de test

int[] a = {90, 12, 21, 32, 51, 78, 87, 98} ; est un tableau contenant 8 entiers.

imprimer(trier(a));

System.out.println(binarySearch(sort(a), 40, 0, a.length-1)); est un code utilisé pour rechercher binairement des éléments d'une valeur de 40 dans le tableau trié a.

}

}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:docexcel.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!