diff --git a/info4/kapitel-9/Ackermann.ipynb b/info4/kapitel-9/Ackermann.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..1615a9b50fa457031cabb532edd17938952327de --- /dev/null +++ b/info4/kapitel-9/Ackermann.ipynb @@ -0,0 +1,168 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "05d7c16f", + "metadata": {}, + "source": [ + "## Die Ackermann Funktion" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "dc177e49", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "ack(0,N,R) :- !, R is N+1.\n", + "ack(M1,0,R) :- !, M is M1-1, ack(M,1,R).\n", + "ack(M1,N1,R) :- M is M1-1, N is N1-1, ack(M1,N,R1),ack(M,R1,R)." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "4adf4ed2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\u001b[1mR = 3" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "?- ack(1,1,R)." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "c26e7fa4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\u001b[1mR = 4" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "?- ack(1,2,R)." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "d682c1fc", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\u001b[1mR = 61" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "?- ack(3,3,R)." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "0e1603db", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\u001b[1mR = 253" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "?- ack(3,5,R)." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "41d483da", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\u001b[1mR = 509" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "?- ack(3,6,R)." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "19e3c25f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\u001b[1mR = 13" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "?- ack(4,0,R)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "95f45975", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Prolog", + "language": "prolog", + "name": "prolog_kernel" + }, + "language_info": { + "codemirror_mode": "prolog", + "file_extension": ".pl", + "mimetype": "text/x-prolog", + "name": "Prolog" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}