BuK/IIm20/Vorlesung 8 Grüning

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Python</language>
== Gödelisierung Eigenschaften Seite 4 ==

Einfach $A^*$ aufzählen (Aufzählfunktion F)und mit G durchprobieren. Umkehrfunktion ist eine Funktion da G injektiv ist. Da G und F berechenbar sind und G(w) garantiert existiert gibt es immer ein Ergebnis.


== Gödelisierung Primzahlverschlüsselung Seite 11 ==

<code id="609fadeab8777">
import re

def isPrime(n):
    return re.match(r'^1?$|^(11+?)\1+$', '1' * n) == None

def get_n_primes(N):
    M = 100
    l = list()

    while len(l) < N:
        l += filter(isPrime, range(M - 100, M))
        M += 100
    return l[:N]

def find_char_number(symbol, alphabet):
    for char_index, alpha_char in enumerate(alphabet):
        if alpha_char == symbol:
            return char_index + 1

def G(word, alphabet):
    primes = get_n_primes(len(word))
    prod = 1
    for symbol_index, symbol in enumerate(word):
        char_number = find_char_number(symbol, alphabet)
        prime = primes[symbol_index]
        prod *=  prime**char_number
    return prod
</code>

<run id="609fadeab881c">
A = ["a", "b"]
print(G("aba", A))
</run>

== Kreativaufgabe Seite 27 ==

Textmanipulationen:

1. Füge ein U am Ende eines Satzes ein, welcher mit I endet.

2. Kopiere den Teil eines Satzes, der rechts neben (oder hinter) M steht und füge ihn am rechten Ende an.

3. Ersetze III durch U in einem Satz.

4. Ersetze UU in einem Satz mit ""

MU teil von MIU?

Um auf MU zu kommen muss man die Anzahl der I auf ein Vielfaches von 3 bringen, um sie auf 0 zu reduzieren. Dies ist nötig, da nur Regel 3 Is entfernt.
Jedoch kann man immer nur die Anzahl der Is verdoppeln und da man mit 1, was kein Vielfaches von 3 ist, wird man somit kein Vielfaches von 3 erreichen, da beim Verdoppel immer nur der Primfaktor 2 hinzukommt und durch das zwischenzeitige Subtrahieren von 3 die Anzahl, wenn sie vorher nicht durch 3 teilbar war, garantiert auch nachher nicht durch 3 teilbar sein. Also wird die Anzahl der Is nie durch 3 teilbar sein. Damit kann man MU mit diesen Regeln nicht erzeugen