U
UlfsHeizung
Gast
Hallo!
Entschuldigung für den unklaren Titel, aber ich habe ein Problem, das ich in der Kürze nicht näher beschreiben kann:
Hierbei geht es nur um die Variablen "test", "nutzerzahl" und "nutzerzahl_alt".
"test" sollte die Werte des Quotienten aus "nutzerzahl" und "nutzerzahl_alt" annehmen - tut dies aber aus mir unerklärlichen Gründen nicht, sondern bleibt konstant 1.0. Wenn es sich um eine Integer-Variable handelte, wäre das durch die Rundung klar, aber es ist ja eine Double, die die Nachkommastellen berücksichtigen müsste.
Hier ist mein Code (wie gesagt, relevant sind nur die drei oben erwähnten Variablen):
Und das ist die Ausgabe der ersten vier Schleifendurchläufe:
Entschuldigung für den unklaren Titel, aber ich habe ein Problem, das ich in der Kürze nicht näher beschreiben kann:
Hierbei geht es nur um die Variablen "test", "nutzerzahl" und "nutzerzahl_alt".
"test" sollte die Werte des Quotienten aus "nutzerzahl" und "nutzerzahl_alt" annehmen - tut dies aber aus mir unerklärlichen Gründen nicht, sondern bleibt konstant 1.0. Wenn es sich um eine Integer-Variable handelte, wäre das durch die Rundung klar, aber es ist ja eine Double, die die Nachkommastellen berücksichtigen müsste.
Hier ist mein Code (wie gesagt, relevant sind nur die drei oben erwähnten Variablen):
Code:
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class Community {
public static void main(String[] args) {
try{
PrintWriter out = new PrintWriter(new FileWriter("graph.txt"));
//Variablen initialisieren:
double ma_einsatz = 1;
double aktivitaet = 0.1;
double qualitaet = 1;
double attraktivitaet = 0.1;
double nutzerzuwachs;
double schreibmotivation;
int neue_beitraege;
int nutzerzahl = 10;
int nutzerzahl_alt = 10;
int beitragszahl = 50;
int beitragszahl_alt = 50;
[color=red]double test;[/color]
for(int t = 1; t <= 10; t++){
ma_einsatz = ma_einsatz - aktivitaet;
[color=red]test = nutzerzahl / nutzerzahl_alt;[/color]
aktivitaet = aktivitaet * (nutzerzahl / nutzerzahl_alt);
qualitaet = qualitaet / (beitragszahl / beitragszahl_alt);
attraktivitaet = (qualitaet + aktivitaet) / 2;
nutzerzuwachs = 1 + (ma_einsatz * attraktivitaet);
schreibmotivation = 1 + (aktivitaet * attraktivitaet);
neue_beitraege = (int) (schreibmotivation * nutzerzahl);
beitragszahl_alt = beitragszahl;
beitragszahl = (int) (beitragszahl + neue_beitraege);
[color=red]nutzerzahl_alt = nutzerzahl;
nutzerzahl = (int) (nutzerzahl * nutzerzuwachs);[/color]
System.out.println("Periode " + t);
[color=red]System.out.println("test: " + test);[/color]
System.out.println("ma_einsatz: " + ma_einsatz);
System.out.println("aktivitaet: " + aktivitaet);
System.out.println("qualitaet: " + qualitaet);
System.out.println("attraktivitaet: " + attraktivitaet);
System.out.println("nutzerzuwachs: " + nutzerzuwachs);
System.out.println("schreibmotivation: " + schreibmotivation);
System.out.println("nutzerzahl: " + nutzerzahl);
System.out.println("nutzerzahl_alt: " + nutzerzahl_alt);
System.out.println("beitragszahl: " + beitragszahl);
System.out.println();
//out.println(t + " " + beitragszahl + " " + nutzerzahl + " " + attraktivitaet + " " + qualitaet);
}
out.close();
}
catch (IOException e){
System.out.print("Fehler! Daten konnten nicht geschrieben werden!");
}
}
}
Und das ist die Ausgabe der ersten vier Schleifendurchläufe:
Code:
Periode 1
[color=red]test: 1.0[/color]
ma_einsatz: 0.9
aktivitaet: 0.1
qualitaet: 1.0
attraktivitaet: 0.55
nutzerzuwachs: 1.495
schreibmotivation: 1.055
nutzerzahl: 14
nutzerzahl_alt: 10
beitragszahl: 60
Periode 2
[color=red]test: 1.0[/color]
ma_einsatz: 0.8
aktivitaet: 0.1
qualitaet: 1.0
attraktivitaet: 0.55
nutzerzuwachs: 1.44
schreibmotivation: 1.055
nutzerzahl: 20
nutzerzahl_alt: 14
beitragszahl: 74
Periode 3
[color=red]test: 1.0[/color]
ma_einsatz: 0.7000000000000001
aktivitaet: 0.1
qualitaet: 1.0
attraktivitaet: 0.55
nutzerzuwachs: 1.385
schreibmotivation: 1.055
nutzerzahl: 27
nutzerzahl_alt: 20
beitragszahl: 95
Periode 4
[color=red]test: 1.0[/color]
ma_einsatz: 0.6000000000000001
aktivitaet: 0.1
qualitaet: 1.0
attraktivitaet: 0.55
nutzerzuwachs: 1.33
schreibmotivation: 1.055
nutzerzahl: 35
nutzerzahl_alt: 27
beitragszahl: 123