Random: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
 
(7 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=== Zugehörige Evaluatoren ===
*'''MathEvaluator'''
=== Beschreibung ===
=== Beschreibung ===
Die Funktion ''random'' liefert eine Pseudozufallszahl in Form einer [[Gleitkommazahl]] im Bereich von 0 (inklusiv) bis 1 (exklusiv) zurück. Die Funktion benötigt keine Parameter.
Die Funktion ''random'' liefert eine Pseudozufallszahl in Form einer [[Gleitkommazahl]] im Bereich von 0 (inklusiv) bis 1 (exklusiv) zurück. Die Funktion benötigt keine Parameter.
Zeile 9: Zeile 12:


=== Return Value ===
=== Return Value ===
* Gibt eine Zufallszahl (double) zurück
* Gibt eine Zufallszahl [[Gleitkommazahl]] zurück


=== Beispiele ===
=== Beispiele ===
====Standardfälle====
====Standardfälle====
  random()  --> 0.451236789
  random()  --> returns 0.451236789
  random()  --> 0.969492934
 
  random()  --> returns 0.969492934
==== Benutzung mit Variablen ====
*keine
 
====JUnit Tests====
<span class="mw-customtoggle-myDivision">[Anzeigen]</span>
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-myDivision">
@Test
public void testRandom() {
for(int i=0;i<10000;i++){
assertTrue(1 >  Evaluator.getNumberResult("random()", exerciseVariableMap, fillInVariableMap));
assertTrue(0 <= Evaluator.getNumberResult("random()", exerciseVariableMap, fillInVariableMap));
}
 
@Test
public void testRandomStatistically() {
HashMap<Double, Integer> statistics = new HashMap<>();  //<'Random Number', 'Occurrences'>
for (int i = 0; i < 10000; i++){
double random = Evaluator.getNumberResult("random()", exerciseVariableMap, fillInVariableMap);
if (statistics.containsKey(random)){
statistics.put(random, statistics.get(random) +1);
}else{
statistics.put(random, 1);
}
}
 
int max = 0;
for (int value : statistics.values() {
if(value > max){ max = value; }
}
assertTrue(2 >= max);  //max 2 same random numbers out of 10 000
assertTrue(9990 < statistics.values().size()); //max 9 random numbers overlapping out of 10 000
}
 
@Test(expected=FunctionInvalidNumberOfArgumentsException.class)
public void testRandomWithOneArgument() {
Evaluator.getNumberResult("random(4)", exerciseVariableMap, fillInVariableMap);
fail();
}
 
@Test(expected=FunctionInvalidNumberOfArgumentsException.class)
public void testRandomWithTwoArguments() {
Evaluator.getNumberResult("random(4, 5)", exerciseVariableMap, fillInVariableMap);
fail();
}
 
@Test(expected=FunctionInvalidNumberOfArgumentsException.class)
public void testRandomWithThreeArguments() {
Evaluator.getNumberResult("random(2, 4, 0.1)", exerciseVariableMap, fillInVariableMap);
fail();
}
</syntaxhighlight>


=== Hinweise ===
=== Hinweise ===
* liefert niemals den Wert 1 zurück
* liefert niemals den Wert 1 zurück
* Weitere Funktionen die zufällig Zahlen ziehen sind: [[randomBetween]], [[randomUniqueIntegersBetween]] und [[randomIntegerBetween]].


[[Kategorie:Evaluatorfunktion]]
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:JACK2]][[Kategorie:JACK3]]

Aktuelle Version vom 10. Oktober 2024, 10:17 Uhr

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

Die Funktion random liefert eine Pseudozufallszahl in Form einer Gleitkommazahl im Bereich von 0 (inklusiv) bis 1 (exklusiv) zurück. Die Funktion benötigt keine Parameter.

Syntax

random()

Parameter

  • keine

Return Value

Beispiele

Standardfälle

random()   --> returns 0.451236789

random()   --> returns 0.969492934

Hinweise