/* - Berechnung der Codierung eines Cantor-Paares - parameter: x Element, in diesem Fall das Wort aus A* - parameter: y Zeit, die gewährt wird, um die Berechnung durchzuführen - return Codierung des Paares als Number */ function cantoPaar(x,y){ return (((x + y) * (x + y + 1)) / 2) + y } /* - Entschlüsseln der Codierung eines Cantor-Paares - parameter a Codierung enes Cantor-Paares, und return Element des Paares, in diesem Fall Wort aus A* */ function cantoPaarX(a){ var w = Math.floor((Math.sqrt(8 * parseFloat(a) + 1) - 1) / 2); return w - (a - w * (w + 1) / 2); } /* - Entschlüsseln der Codierung eines Cantor-Paares - parameter a Codierung enes Cantor-Paares,und return: Zeit, die für die Berechnung gewährt wird */ function cantoPaarY(a){ var w = Math.floor((Math.sqrt(8 * parseFloat(a) + 1) - 1) / 2); return a - w * (w + 1) / 2; } /* Funktion, die prüft ob ein Wort in der Teilmenge von A* über dem Alphabet {a,b}* ist, bei der das Wort mit a beginnt */ function isElementM(w) { if(w[0]=='a' && (w.slice(-1)=='a' || w.slice(-1)=='b' )) return true; else return false; } /* endlicheMenge : entscheidbar -> es gibt eine Prozedur, die true oder false zurückgibt und total berechenbar ist */ function isEnthaelt(w) { var menge = ["aaa","aba","baa","bab","abb","bbb"]; return menge.includes(w); }
console.log(isEnthaelt("abaa"));
ausführen
console.log(isElementM("ababaaabbaaaa"));
console.log(cantoPaarX(42491));