2010-11-22 9 views
0

Ich habe ein Array von 256 Werten. Diese 256 Werte wurden auf mysteriöse Weise berechnet und reichen von 0 bis einschließlich 3. Um die Effizienz meines Programms zu erhöhen, kann ich die Ergebnisse des Arrays anhand eines Indexes berechnen, anstatt tatsächlich im Array nachzuschlagen.Tipps zum Suchen von Mustern in einem Array

Im Grunde gibt das Programm mir einen Index, der im Array nachgeschlagen werden würde, aber ich weiß, dass ich tatsächlich berechnen kann, was in diesem Index mit der Indexnummer selbst sein wird.

Zum Beispiel

a[0] = 3, a[1] = 2, a[2] = 1, ... , a[254] = 1, a[255] = 1 

Ich bin eigentlich nicht für die Berechnung zu fragen hier, aber in der Anordnung in jeder Reihe suchen, was sind einige Tipps, um das Muster herauszufinden? Ich entschuldige mich, wenn das schlecht formuliert ist, werde ich versuchen, alle Fragen zu klären.

+0

Name des Arrays zum Beispiel. Code, der es verwendet. IQ (nichts für ungut, aber viele IQ-Tests geben Ihnen eine Folge von Zahlen, und Sie müssen den nächsten Wert erraten). – ruslik

+0

Sie könnten dies auch lesen, um das Problem besser zu verstehen: http://en.wikipedia.org/wiki/Kolmogorov_complexity – ruslik

Antwort

1

Es gibt wahrscheinlich keinen allgemeinen Ansatz zur Lösung dieses Problems, ohne eine Vorstellung von der Funktion zu haben, die die Daten generiert hat. Sie erwähnten "Effizienz" —, wenn es wirklich nur 256 Werte gibt und die Funktion, um die Daten zu generieren, irgendeine Art von Berechnungskomplexität hat, ist es wahrscheinlich effizienter, sie einfach als ein Array zu behalten.

+0

Ja, in den meisten Fällen erstellen Sie ein Array für eine Beschleunigung. Die meisten Algorithmen sind langsamer als eine einfache Suche. – ruslik

Verwandte Themen