Autor Beitrag
en!gma
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 378

win xp
delphi 7.0
BeitragVerfasst: Mo 25.07.05 13:41 
hiho
wollte mal fragen ob es wohl möglich wäre ein programm zu schreiben das algorithmen herausfindet?

hab mir das in etwa so vorgestellt, dass zB 10 oder mehr ergebnisse angibt.
und das programm versucht einen algorithmus darin zu finden.
mal ein beispiel:

1=1
2=4
3=9
4=16
5=25

nun soll das programm halt ausspucken zahl*zahl oder sowas in der art.

ist sowas überhaupt möglich?
wenn ja, gibt es sowas villeicht schon?

mfg

en!gma
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 25.07.05 13:48 
Sowas ist durchaus möglich...

Ich würde es zwar anders machen, aber ich gebe hier mal eine sehr einfache Methode an.

Du kannst zum Beispiel einfach einen Interpreter für mathematische Funktionen benutzen, und dann zufällige Funktionen durch Konkatenieren von Operatoren und der Variable bzw. zusätzlich mit Klammerung erzeugen. Bekommt eine davon das gewünschte Ergebnis mit den anderen Angaben überprüfen.

Das dauert zwar sehr lange, wenn es auch nur ETWAS komplizierter ist, erfordert aber keinen komplizierten Code.

Solche Interpreter gibts inzwischen wie Sand am Meer auch kostenlos. Beispielsweise in der JVCL vom Projekt JEDI...
Alstar
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 827



BeitragVerfasst: Mo 25.07.05 13:51 
Solche Folgen bzw. Reihen (falls es solche sind), kannst Du auch relativ leicht mittels eines Terms bestimmen, aber ich glaube nicht, dass Du Dich darauf beschränken möchtest?!

Alstar
en!gma Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 378

win xp
delphi 7.0
BeitragVerfasst: Mo 25.07.05 13:55 
das war jetzt wirklich nur ein kleines beispiel

ich habe später eher daran gedacht
sowas wie

61=3500
54=3159
oder sowas

oder villeicht schon sowas

5817581=851591758917589758

oder noch länger.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 25.07.05 13:58 
user profile iconAlstar hat folgendes geschrieben:
Solche Folgen bzw. Reihen (falls es solche sind)

Was sollte es denn sonst sein???

Darunter versteht man (mathematisch gesehen natürlich) schließlich nur eine geordnete Folge von Zahlen, die durch irgendeine Vorschrift in dieser folge bestimmt werden.
Dies kann explizit, wie im obigen Beispiel, oder rekursiv durch Angabe der Berechnungsvorschrift des jeweils nächsten Folgeglieds aus dem vorherigen geschehen.

Und das schließt wohl alles ein, was en!gma meint...
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 25.07.05 14:00 
Ich würde generell dagegen wetten ;-)

Ich kann das jetzt nicht formal beweisen, aber das Problem, welches du hier ansprichst, würde ich spontan in dieselbe Ecke einordnen wie das sogenannte "Halteproblem". Dabei geht es darum, dass man einen Algorithmus gegeben hat, und eine Eingabe für diesen Algorithmus. Das Halteproblem ist, zu entscheiden, ob der Algorithmus ein Ergebnis ausspuckt, oder endlos weiterrechnet. Das Halteproblem ist nicht entscheidbar.

Dein Problem halte ich auf den ersten Blick für noch komplizierter. :gruebel:

Wenn du gewisse Forderungen an die Algorithmen bzw. mathematischen Formeln stellst, die du herausfinden willst, lässt sich da bestimmt was machen - sonst nicht.

_________________
We are, we were and will not be.
en!gma Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 378

win xp
delphi 7.0
BeitragVerfasst: Mo 25.07.05 14:01 
angenommen ich hätte wirklich
10 von solchen gleichungen

5817581=851591758917589758
9r51809=5912850189581905890
98180959018590=578758215190589511985
58918905915=5718950810

wär das denn auch noch möglich?
oder wären die berechnungszeiten viel zu lang?
aber könnte ich villeicht ein kleines beispiel für so ein programm, also nur in die richtung kriegen? =)
wäre nett,
von mir aus auch nur meta code, halt das ich nen anfang hab
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Mo 25.07.05 15:39 
ohne jetzt viel zu schreiben:

1 = 1
2 = 4
3 = 1
4 = 5
5 = 9
6 = 2
7 = 6
8 = 5
9 = 3
10 = 6
11 = 8
12 = 9

das sind die nachkommastellen von PI
wenn du dafür jetzt ne formel entwickelst biste mein persönlicher gott :) aber jetzt nicht PI normal ausrechen und mit modulo etc. die stelle rausfiltern, sondern eine formel bei der ich z.b. 13 eingebe und ich würde die nächste stelle bekommen

und meinst immer noch du willst dich damit versuchen?

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
en!gma Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 378

win xp
delphi 7.0
BeitragVerfasst: Mo 25.07.05 16:05 
naja egal dann hat sich das wohl erledigt :)
Tobias1
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 454

Win 98, XP Prof
D3 Prof, D2005 Prof
BeitragVerfasst: Mo 25.07.05 16:12 
user profile iconuall@ogc hat folgendes geschrieben:

10 = 6

10=5 !!! :D


Ich glaube bei so einer Folgen-Suchmaschiene müsste man ein riesen Raster machen und alle bekannten Folgen eingeben.
So müsste bei der Eingabe erstmal alles durchprobiert werden, ob das zu der Folge 14-15-16-... oder zu der Folge 0-1-3-6-10-.. oder 1-4-1-5- passt.

_________________
Auch das schlechteste Buch hat seine gute Seite: die letzte. (John Osborne)
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 25.07.05 16:29 
Ich möchte nur noch mal kurz einwerfen, dass ich das ganze Vorhaben für prinzipiell unmöglich halte. Nicht unmöglich im Sinne von das "dauert zu lang" oder "das braucht zu viel Speicher", sondern unmöglich wie "man kann sich nicht selbst am Ellenbogen und am Hinterkopf lecken".

_________________
We are, we were and will not be.
en!gma Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 378

win xp
delphi 7.0
BeitragVerfasst: Mo 25.07.05 16:37 
naja ein bischen misstrauisch war ich von anfang an :)
schade,
schön wärs gewesen :)
naja thread kann dann auch geschlossen werden
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Mo 25.07.05 17:30 
Wieso schließen? Wenn noch jemand eine Frage hat, ist diese doch hier gut untergeracht ;) Ich glaube übrigens nicht, dass es ganz unmöglich ist. Schließlich kann unser Gehirn eine solche Aufgabe ganz gut bewältigen, d.h. das auch Computer dazu früher oder später in der Lage sein werden 8)

Gruß,
maxk

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 25.07.05 17:48 
Keine Angst, hier wird nicht geschlossen.

Zu "unser Gehirn kann das": Hier mal ein kleines Rätsel
ausblenden Quelltext
1:
2:
3:
4:
8 -> 4
16 -> 8
28 -> 14
10 -> ?
Nenne mir den zugrundeliegenden Algorithmus und ersetze das ? durch die richtige Zahl. 5 ist übrigens falsch! (Sorry, falls das altbekannt ist, mir fiel grad nix neues ein)

Zur Unmöglichkeit: Es ist mathematisch beweisbar (und das ist gar nicht sooo kompliziert), dass man folgende Frage nicht beantworten kann:

Gegeben: Ein beliebiges Programm P und eine Eingabe a für das Programm.
Frage: Hält das Programm P mit dieser Eingabe irgendwann an - Ja oder Nein?

_________________
We are, we were and will not be.
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Mo 25.07.05 18:43 
Gausu in dem fall wäre 5 wohl richtig, da es hier nur um einen Algorythmus geht der die Eingaben alle richtig abbildet

d.h. bei den 3 eingaben wäre f(x) = x/2
der richtige alg.

auch wenns nicht der ist den du meinst

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
DaClown
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 68



BeitragVerfasst: Mo 25.07.05 19:00 
was ist denn die richtige Antwort diese Zahlkette Gausi, 17? (p=8; q=1; while (true) do x:=((x+8+q*4)mod 24)/2; oder so ähnlich ??)
en!gma Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 378

win xp
delphi 7.0
BeitragVerfasst: Mo 25.07.05 19:06 
in dem fall nach dem ich gefragt hatte, wäre 5 richtig :)
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 25.07.05 19:18 
Richtige Lösung ist 10 -> 4
Folgendes Verfahren habe ich verwendet:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
A C H T
1 2 3 4

S E C H Z E H N
1 2 3 4 5 6 7 8

A C H T U N D Z W  A  N  Z  I  G
1 2 3 4 5 6 7 8 9 10 11 12 13 14

Z E H N
1 2 3 4
Es gibt nunmal ein paar mehr Sachen, die man mit Zahlen machen kann, als +,-,*,/,DIV, MOD...

_________________
We are, we were and will not be.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mo 25.07.05 19:18 
@Gausi:
5 ist bei deiner Aufgabe selbstverständlich korrekt. Es kann auch mehrere Lösungen geben. Wenn du sagst, dass es falsch ist, dann ist die Menge der Informationen nicht hinreichend.

Ob es Aufgaben dieser Art gibt, die nicht mit einem Algo lösbar sind, weiß ich nicht.
Theoretisch gehe ich davon aus, dass alles was aufgrund von vorhandenen Informationen analysiert werden kann, auch mit Algos festgestellt werden kann. Vielleicht sind wir einfach noch nicht in der Lage das zu prgrammieren.
Ich kann mich an Zeiten erinnern, wo gesagt wurde, dass Spracherkennung à la Enterprise unmöglich ist. Wenn man aber die Fortschritte betrachtet ...
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 25.07.05 19:45 
user profile iconjasocul hat folgendes geschrieben:
@Gausi:
5 ist bei deiner Aufgabe selbstverständlich korrekt. Es kann auch mehrere Lösungen geben. Wenn du sagst, dass es falsch ist, dann ist die Menge der Informationen nicht hinreichend.
Siehst du, und genau das versuche ich unter anderem klarzumachen. Aufgabe ist es laut Thread-Titel, aus einigen Paaren (Eingabe-Ausgabe) den zugrundeliegenden Algorithmus herauszufinden. Ich glaube, dass mein Beispiel eindeutig zeigt, dass dies schonmal aufgrund der begrenzten Zahl an Eingabedaten nicht möglich ist.

user profile iconjasocul hat folgendes geschrieben:
Ob es Aufgaben dieser Art gibt, die nicht mit einem Algo lösbar sind, weiß ich nicht.
Glaub mir: Es gibt Probleme, die sind nicht lösbar. Das ist eine mathematische Tatsache. Es ist nicht so, dass man meint, sie sind nicht lösbar, weil man bisher keine Metode gefunden hat, sie zu lösen. Sondern man hat gezeigt, dass es keine Lösung geben kann. Würde es eine Lösung geben, würde sich das selbst widersprechen. Man erhält dann so Aussagen wie "X ist genau dann gerade, wenn X ungerade ist."

user profile iconjasocul hat folgendes geschrieben:
Theoretisch gehe ich davon aus, dass alles was aufgrund von vorhandenen Informationen analysiert werden kann, auch mit Algos festgestellt werden kann. Vielleicht sind wir einfach noch nicht in der Lage das zu prgrammieren.
Tut mir leid, dir da ein paar Illusionen nehmen zu müssen, aber das ist ganz einfach nicht richtig. Wir sind nicht nur nicht in der Lage, es zu programmieren, es liegt in der Natur des Problems, dass es nicht lösbar ist.

user profile iconjasocul hat folgendes geschrieben:
Ich kann mich an Zeiten erinnern, wo gesagt wurde, dass Spracherkennung à la Enterprise unmöglich ist. Wenn man aber die Fortschritte betrachtet ...
Das ist was anderes - soll keine faule Ausrede sein. Ist einfach so. :mrgreen:

_________________
We are, we were and will not be.