BuK/IIm20/Vorlesung 3 Merkelt

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Python</language>

== Folie 9 ==
'''Beispiel 1'''
<code id="606ef64b45bca">
def chi_M(w):
    return len(w) == 3
</code>
<run id="606ef64b45ca4">
print(chi_M("aaa"))
print(chi_M("ab"))
print(chi_M("aba"))
</run>
'''Beispiel 2'''
<code id="606ef64b45c38">
def chi_M(w):
    return w.startswith("a")
</code>
<run id="606ef64b45d03">
print(chi_M("aaa"))
print(chi_M("babababaaab"))
print(chi_M(""))
</run>

== Folie 10 ==

== Folie 15 ==
'''ÜA 1'''

$G \subset \mathbb{N}$
{| class="wikitable"
|Ordnungszahl
|0
|1
|2
|3
|4
|5
|6
|...
|-
|$G$
|0
|2
|4
|6
|8
|10
|12
|...
|}

'''ÜA 2'''

$P \subset \mathbb{N}$
{| class="wikitable"
|Ordnungszahl
|0
|1
|2
|3
|4
|5
|6
|...
|-
|$P$
|2
|3
|5
|7
|11
|13
|17
|...
|}

'''ÜA 3'''

$\{a,b\}^*$

Diese Menge lässt sich längenlexikografisch sortieren und auf diese Weise ebenfalls aufzählen.

== Folie 16 ==

<code id="6073572223d8a">
def get_g(n):
    if n % 2 == 0:
        return int(n / 2)
    else:
        return int((n + 1) / -2)

def diag(n):
    x = 0
    y = 0
    d = 'r'

    for i in range(n):
        if d == 'r':
            x = x + 1
            d = 'dd'
        elif d == 'dd':
            x = x - 1
            y = y + 1
            if x == 0:
                d = 'd'
        elif d == 'd':
            y = y + 1
            d = 'du'
        elif d == 'du':
            x = x + 1
            y = y - 1
            if y == 0:
                d = 'r'

    return "( %s . %s )" % (get_g(x), get_g(y))
</code>
<run id="6073572223e31">
for i in range(13):
    print("%s:: %s" % (i, diag(i)))
</run>

== Folie 20 ==

== Folie 23 ==