Le Calcul De Pi Programme Java
Je vais prendre mon premier langage de programmation Java de la classe et c'est mon premier projet de la classe. Je suis tellement confus sur la façon de l'aborder. Toute aide ou correction sera appréciée.
Vous pouvez calculer approximativement la valeur de la constante PI en utilisant les séries suivantes:
PI = 4 ( 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ... + ( (-1)^(i+1) )/ (2i - 1) )
Invite à l'utilisateur la valeur de i (en d'autres mots, combien de termes de cette série à utiliser)
calcul de PI. Par exemple, si l'utilisateur entre 10000, somme les 10 000 premiers éléments de la série et ensuite afficher le résultat.
En plus d'afficher le résultat final (final de l'approximation de PI), je veux que vous pour afficher le long de la façon dont votre intermédiaire calcule à chaque puissance de 10. Donc, 10, 100, 1000, 10000, et ainsi de suite, l'affichage à l'écran de l'approximation de PI au numéro de résumé des éléments.
C'est ce que j'ai fait jusqu'à présent ..
import java.util.Scanner;
public class CalculatePI {
public static void main(String[] args) {
//Create a Scanner object
Scanner input = new Scanner (System.in);
//Prompt the user to enter input
System.out.println("Enter number of terms");
double i = input.nextDouble(); //value of i user entered
double sum = 0;
for(i=0; i<10000; i++){
if(i%2 == 0) //if the remainder of `i/2` is 0
sum += -1 / ( 2 * i - 1);
else
sum += 1 / (2 * i - 1);
}
System.out.println(sum);
}
}
Le point essentiel de cette est de le mettre infinie formule de sommation dans le code
for(int i = 0; i < input; i++) {
summation += Math.pow(-1, i + 1) / (2 * i - 1)
}
ce sont de drôles de conventions de nommage que vous ahve il
À l'exception de la tentative de retour à un
double
à la fin d'une méthode qui est déclarée comme void ...
, votre code a l'air assez bon pour un débutant.OriginalL'auteur sean | 2014-02-10
Vous devez vous connecter pour publier un commentaire.
Première chose que je vois est à vous de tenter de renvoyer une valeur à partir de votre
void main
méthode.ne pas
return pi;
de votre méthode principale. L'imprimer.Deuxièmement, quand les gens écrire un
for
boucle, ils sont généralement une itération suri
, ce qui est probablement le mêmei
que votre professeur visées dans la formulemaintenant, ça ne fonctionnera pas correctement comme il est, vous avez encore à gérer la
^
, java n'utilise pas de manière native. heureusement pour vous,-1^(i+1)
est une alternance de nombre, de sorte que vous pouvez simplement utiliser unif
déclarationOriginalL'auteur Sam I am
parfois la réponse est une simple ligne de code. Aussi, vous réaffectez i à 0 donc Im en supposant que vous utilisez la saisie de l'utilisateur dans le mauvais sens.
pour une entrée qui peut être n'importe quelle variable, codé en dur ou définie par l'utilisateur (telles que 1000, 10000, 100000). Cela devrait fonctionner
OriginalL'auteur Man I Am
Comprendre la formule: Réfléchir sur la nature de la formule avant de tenter de les résoudre par le code. Je dis cela parce que si vous l'avez fait, vous ne devriez pas essayer d'alterner entre le positif et le négatif avec le code suivant:
La série alterne entre des nombres positifs et négatifs parce que le numérateur,
-1 ^ (i + 1)
.Lorsque l'exposant est pair, le numérateur est positif. Lorsque l'exposant est impair, le numérateur est négatif. Ce qui signifie qu'il n'y pas besoin d'alterner entre les nombres positifs et négatifs dans votre code car la formule intrinsèquement le fait. Aussi, on doit calculer la somme dans la parenthèse 1er et ensuite multiplier par 4 à la fin.
Formule dans le code: D'écrire la formule dans le code, vous devez être conscient que vous aurez besoin de faire des Mathématiques.pow(base, exposant) méthode à un nombre à une puissance. Par exemple, 2 ^ 3 est les Mathématiques.pow(2, 3). Avec cette méthode à l'esprit la formule comme ceci:
Calcul de PI: Vous pouvez utiliser une boucle for pour calculer PI en utilisant une boucle for comme ceci:
J'ai choisi de faire mon pour le début de la boucle de 10000 et à la fin quand j'ai = 1. La raison fondamentale en est que, en Java, en raison de l'arrondissement des nombres à virgule flottante, vous obtiendrez des résultats plus précis, si vous ajoutez les petits numéros de 1ère et de travailler votre chemin à un plus grand nombre. Je suis donc le calcul de la série de droite à gauche au lieu de gauche à droite. Puis-je laisser le programme pour calculer les valeurs dans la parenthèse et qu'au dernier numéro de la série t-il multiplier par 4 et imprimer le résultat.
Remarque: vous pouvez remplacer 10000 avec la saisie de l'utilisateur comme suit:
OriginalL'auteur Edmond Weiss
//Voici la formule pour comment je ferais PI approximations en utilisant Babylonien de la méthode.
OriginalL'auteur William Hanson