eigenschaften algorithmus

Neue Frage »

Auf diesen Beitrag antworten »
neuling96 eigenschaften algorithmus

wenn in einer Methode
zumbsp random vorkommt

public static int c(intc){

in i=random(c);
//rest code


...
...

dann ist die Metode nicht determinierst und auch nicht determiniert?
 
Auf diesen Beitrag antworten »
eulerscheZahl

Zitat:
Für die gleiche Eingabe folgt auch immer die gleiche Ausgabe
(wikipedia)

Wenn der Rückgabewert irgendwie von i abhängt, wird das nicht erfüllt.
Auf diesen Beitrag antworten »
neuling96

determiniert abhängig vom rückgabewert.

und
wie es determinierst?
determinierst :
Ein Algorithmus heißt deterministisch, wenn die Wirkung und die
Reihenfolge der Einzelschritte eindeutig festgelegt ist, andernfalls
nicht-deterministisch

wegen
int i= random(c);

ist es nicht-deterministisch?
Auf diesen Beitrag antworten »
eulerscheZahl

Hier nochmal die Definitionen:
Determinismus
Determiniertheit

Wenn sich der Rückgabewert unterscheidet, sind beide nicht erfüllt. Der Unterschied wird auch im 2. oben verlinkten Artikel erklärt.
 
Auf diesen Beitrag antworten »
neuling96

ich habs gelesen, allerdings verstehe ich 100%
hier 2 bsp
public static int c(int i){

code....
...
int x=random(i);

return x;

also beides
Determinismus
Determiniertheit

2ter fall
public static boolean c(int i){

code....
...
boolean a=true;
int x=random(i);
if(x>0){
a=false;


return a;

also beides
Determinismus
Determiniertheit
Auf diesen Beitrag antworten »
eulerscheZahl

Zitat:
allerdings verstehe ich 100%

Den Eindruck habe ich nicht.
Die Beispiele sind beide weder deterministisch, noch determiniert.

Hier ein Beispiel, das deterministisch und determiniert ist:
code:
1:
2:
3:
public int func(int a) {
    return 2 * a;
}


determiniert (immer das selbe Ergebnis), aber nicht deterministisch (verschiedene Wege, um zum Ergebnis zu gelangen):
code:
1:
2:
3:
4:
5:
public int func(int a) {
    int r = random(a);
    if (r == 0) return 2 * a; //der eine Weg
    else return a + a; //und der andere, aber selbes Ergebnis
}
Auf diesen Beitrag antworten »
neuling96

über fehlt "nicht"


die beiden bsp sind nicht
Determinismus
Determiniertheit



wenn ich habe


public static int c(int i){

code....
...
int x=random(i);

if( x>0){
return c(x);

}
das muss nicht terminieren`?
Auf diesen Beitrag antworten »
eulerscheZahl

Wenn random(n) einen Wert in [0;n-1] liefert, bildet das an c übergebene Argument eine streng monoton fallende Folge. Somit terminiert die Funktion auch. (ich gehe mal davon aus, dass für x==0 eine konstante zurückgegeben werden soll)
Auf diesen Beitrag antworten »
neuling96

danke langsam wird es einleuchtender
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »