| INSTITUT FÜR MATHEMATIK UND WISSENSCHAFTLICHES RECHNEN |
![]() |
| Präsentation Mitarbeiterinnen Forschung Lehre Allgemeines Bibliothek Fakultät Uni Graz Home | ||
Humor in der Mathematik - LöwenjagdWie fängt man einen Löwen in der Sahara?Methoden aus der InformatikZunächst einige grundsätzliche Bemerkungen: Die Lineare Suche:Stelle Dich in die linke obere Ecke der Sahara. Gehe einen Schritt nach Osten. Wiederhole, bis Du den Löwen gefunden hast, oder bis Du an den rechten Rand der Sahara gekommen bist. Wenn Du an den rechten Rand gekommen bist, gehe einen Schritt nach Süden und gehe nach Westen, bis Du den Löwen hast, oder am linken Rand angekommen bist. Fahre so fort, bis Du den Löwen gefunden hast. Hast Du ihn gefunden, so stülpe einen Käfig über ihn. Sollte der Löwe Dich fressen, bevor Du das schaffst, drücke den RESET-Knopf und versuche es erneut. Die Monte-Carlo-MethodeWir nehmen eine Zufallszahl, die den Raum, in dem wir suchen, indiziert. Nimmt man benachbarte Punkte aus der Suche heraus, kann man die zu untersuchende Punktzahl drastisch reduzieren. Nach den Gesetzen der Wahrscheinlichkeit wird der Löwe somit früher oder später auftauchen. Die Methode der künstlichen Intelligenz:
suche(Löwe,Wüste,_) :- var(Wüste),!,fail.
% In einer nicht instantiierten W"uste
% lassen sich keine L"owen fangen.
suche(Löwe,Wüste,Wüste) :- atomic(Wüste), gefunden(Löwe,Wüste).
% Wenn die W"uste atomar ist,
% mu"s dort der L"owe sein.
suche(Löwe,[],_):- !, fail.
% Wenn die W"uste leer ist, ist auch
% kein L"owe drin.
suche(Löwe,[HEAD],HEAD) :- gefunden(Löwe,HEAD).
% Wenn der L"owe im ersten Element
% der W"uste ist, dann fertig.
suche(Löwe,[_|T],X) :- suche(Löwe,T,X).
% Sonst weiter schauen.
fange(Was,Wo,Womit) :-
fange(Was,Wo,WoGenau),
bewege(Womit,WoGenau).
gefunden(Was,Worin) :- member(Was, Worin).
bewege(Was, _ ) :- retract(position(Was,_)), fail.
bewege(Was,Wohin) :- asserta(position(Was,Wohin)).
test_Wüste([Wüste_1, Wüste_2, Wüste_3, Wüste_4, Wüste_5,
Wüste_6, Wüste_7, [Wüste_8, Löwe], Wüste_9,
Wüste_A, [Wüste_B, wagen], Wüste_C, Wüste_D]).
fange_Löwe_test :-
bewege(Käfig,wagen),
test_Wüste(Wüste),
fange(Löwe,Wüste,Käfig).,
Hier noch einige iterative Methoden aus der Angewandten Informatik. Standardlösung:MODULE Fang; FROM Problem IMPORT Loesung; BEGIN; Loesung; END Fang. ASM (MS-DOS)- nur möglich ab MASM 9.0 oder TASM 4.5:
dosseg
.DATA
MAX equ 65535
Wüsten_Feld db MAX dup (0)
Käfig db
extern Löwe_Fkt_Nummer:Word ; DOS-Int. Nummer
.CODE
lds si, W_Feld ; ES:DI zeigt auf Anfang des Feldes
cld
mov CX,MAX ; CX als max. Index
M1:
lodsb
cmp al,Löwe
je Gefangen
loop M1
jmp Error
Gefangen:
mov BX,SI
mov AX,Löwe_Fkt_Nummer
lds di, Käfig
int 21h ; Dos-Interrupt, da alle aufwendigen Proc. in
; ASM ausgelagert werden sollen.
Error:
int 20h
END
C++:
|
| AKTUELL SITEMAP SUCHE ENGLISCH UNI GRAZ Betreuer: Bernd Thaller / 13.11.04 |