Fakultät

maxi89

Mitglied
Hallo ich habe folgendes Problem: ich möchte mit folgender Formel Fakultät (i=1 bis unendlich) folgende Formel berechnen: 1-1/(4*i²)
und davon die Fakultät

die normale Fakultätsberechnung habe ich verstanden (also z.b. wie ich zum ergebnis von 5! komme, aber das ganze in einer Formal schaffe ich nicht)

kann mir jemand dazu helfen?

Mfg
 
Zuletzt bearbeitet von einem Moderator:
kann dem noch net ganz folgen, du hast die obige Formel, welche immer <1 ist und willst von dem wert dann dei fakultät rechnen .. also stets ne fakultät von 0,x??
 
Ja es soll mit dieser formel eine Annäherung zu 2/pi erreicht werden

mit dem Taschenrechner funktioniert die formel (ergebnis = 0,6366198)

ich habe schon etwas programmiert und erhalte von 1 bis z.b. 100 alle Teilergebnisse

aber wie kann ich es programmieren, damit java alle teilergebnisse miteinander multipliziert?

also (1-1/(4*1^2))*(1-1/(4*2^2))*(1-1/(4-n^2))
 
also hier meine programmierung (sehr umständlich, aber für mich zumindest teilweise verständlich gg)
Java:
public class Block1 {
	

	public static void main (String[] args) {
		
		double pi = Math.toRadians(180);
//		System.out.println(pi);
		
		double zweidurchpi = 2/pi;
		System.out.println("2/Pi = " + zweidurchpi);
		System.out.println("_________________________");
		
		int zahl = 1;
		
		
		
		
		
		for(int i=1 ; i<=100 ; i++){
			
			zahl = i*i;
//			System.out.println(zahl);
			
				
			
			
			
			double fakultaet = 0;
			fakultaet = (4*zahl);
//			System.out.println(fakultaet);
		
			double division = 0;
			division = 1/fakultaet;
//			System.out.println(division);
			
			double einzelfaktoren = 0;
			einzelfaktoren = 1-(division);
//			System.out.println(einzelfaktoren);
 
Java:
//1-1/(4*i²)

double result = 1.0;

for (int i=0; i<=100;i++) {
    result *= 1.0 - (1.0 / (double) (4* (i*i)));
}//for

sowas? ohne gewähr ^^
 
Zuletzt bearbeitet:
Sowas macht man am besten rekursiv:

Java:
public static double komischeFakultaet(int approx){
    if(approx == 0){
        return 1;
    }
    else{
        return (1-1/(4*Math.pow(approx, 2))) * komischeFakultaet(approx - 1);
    }
}
 
Zuletzt bearbeitet:
irgendwie funktioniert das nicht wirklich.

ich glaube wir müssen das mit einer for schleife programmieren

nur wie komme ich weiter?

also mit meinen einzelfaktoren erhalte ich bei i=3:
0.75
0.9375
0.9722222222222222

und wie multipliziere ich diese drei zahlen
also mit dem hintergedanken, das ich ja "n" zahlen habe?
 
Java:
public class Test {
	
	public static void main(String[] args) {
		double result = 1.0;
 
		for (int i=1; i<=10;i++) {
			result *= 1.0 - (1.0 / (double) (4* (i*i)));
			System.out.println(result);
		}
	}
}

funktioniert soweit, obs das ist was du suchst .. kA, folgt zumindest deinen Anforderungen 🙂

0.75
0.703125
0.68359375
0.67291259765625
0.6661834716796875
0.6615571975708008
0.65818190574646
0.6556108826771379
0.6535873922985047
0.6519534238177584
 
Zuletzt bearbeitet:
Achso wie ich sehe ist meine Version falsch - ich hatte mich an deine Vorgabe gehalten:

(1-1/(4*1^2))*(1-1/(4*2^2))*(1-1/(4-n^2))

So wie's aussieht ist es aber nicht n^2 sonder n^n. Also müsstest du das in meiner Version auch anpassen:
Code:
Math.pow(approx, approx)

ich glaube wir müssen das mit einer for schleife programmieren
Das spielt keine Rolle - meine Methode tut das selbe wie die von diggaa, nur ist die eine Version rekursiv und die andere iterativ.
 
Hey jaaaa genau sowas

danke danke danke!!!!!! ;-)
jetzt weiß ich was bei mir falsch war



natürlich ist dieses ergebnis erst bei unendlich dasselbe wie 2/pi
und dieser "Rest" sollte auch ausgegeben werden.
ich soll dann einen bestimmten rest eingeben und das programm soll mir ein "neues i" herausgeben

als anfänger bin ich da einfach überfordert
 
Achso wie ich sehe ist meine Version falsch - ich hatte mich an deine Vorgabe gehalten:

So wie's aussieht ist es aber nicht n^2 sonder n^n. Also müsstest du das in meiner Version auch anpassen:
Code:
Math.pow(approx, approx)

Das spielt keine Rolle - meine Methode tut das selbe wie die von diggaa, nur ist die eine Version rekursiv und die andere iterativ.

danke auch dir!

cool dann kann ich meinen Prof 2 versionen vorlegen ;-)
 

Zurück
Oben