IIm10/BuK-Übung02 G2
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Scheme</language>
== Intuitiver Berechnbarkeitsbegriff ==
<code id="4d89f4861d3aa">
(define haelt-fuer-n?
(λ (f n)
(if (integer? (f n))
#t
#f)))
</code>
<code id="4d89f4861d42c">
(define haelt?
(λ (f)
(haelt-fuer-n? f 0)))
</code>
<code id="4d89f4861d48a">
(define crazy
(λ (n)
(if (haelt? crazy n)
(crazy n)
n)))
</code>
<code id="4d89f4861d4e8">
(define haelt-tricky?
(λ (f timeout)
(letrec
([ft (thread f)]
[helper
(λ (timeLeft)
(if (thread-running? ft)
(if (= timeLeft 0)
#f
(begin (sleep 1) (helper (- timeLeft 1))))
#t))])
(helper timeout))))
</code>
<code id="4d89f4861d54c">
(define test1
(λ ()
(print "hallo")))
(define test2
(λ ()
(test2)))
</code>
<run id="4d89f4861d5c2">
(haelt-tricky? test1 10)
</run>
<run id="4d89f4861d616">
(haelt-tricky? test2 10)
</run>
=== Bijektive Funktion ===
Es sei eine Funktion <math>f:{\mathbb{N}}^{+} \rightarrow {\mathbb{Q}}^{+}</math> gegeben: <br><br>
<math>
f(n) = \left\{\begin{matrix}
1, & \mbox{wenn } n=1 \mbox{,}\\
f(\frac{n}{2})+1, & \mbox{wenn } n \mbox{ gerade,}\\
\frac{1}{f(n-1)}, & \mbox{wenn } n \mbox{ ungerade.}
\end{matrix}\right.
</math>