2016-07-20 19 views
-2

Ich bin in einer kleinen Herausforderung suchen, die mich erfordertPython zufällige Liste Generation

1.Erstellen eine Funktion, die eine zufällige Listen der Größe erzeugt 2 (eine Liste, in der sie zwei Elemente ist sind Buchstaben zufällig generiert).

2. Erstellen Sie eine Funktion, die bewertet, wie gut eine zufällig generierte Liste mit einer anderen vordefinierten Liste verglichen wird. Daher können wir uns normalerweise vorstellen, wie viele Übereinstimmungen wir an jeder Position haben.

3. Erstellen Sie eine Funktion, die eine neue zufällig generierte Liste aufruft und bewertet, bis wir einen Score einer bestimmten Größe erreichen. Es möchte auch das beste Ergebnis für alle 1000 generierten Listen drucken.

Ich habe 1. und 2. für 3. Ich habe eine Funktion erstellt, die wiederholt die Score-Funktion aufruft, bis wir eine Punktzahl von einer bestimmten Größe erfüllen, aber ich bin mir nicht sicher, wie Sie die beste Punktzahl pro jeder drucken 1000 generierte Listen Dies liegt daran, dass ich eine while-Schleife verwendet habe, um diese zu generieren, bis ein Score von bestimmter Größe erreicht ist. Eine Lösung, die ich hatte, war, die Partituren in einer Liste zu speichern, indem jeder Partitur von einer leeren Liste angehängt wurde. Verwenden Sie dann die Max-Funktion, um die besten Ergebnisse zu drucken, wenn die Liste in Stücke der Größe 1000 geschnitten wird.

Gibt es einen besseren Weg?

+1

Können Sie den Code angeben? Hört sich interessant an. – Ohumeronen

+0

Danke Jungs die Antworten funktionierten sehr gut –

Antwort

1

Verwenden Sie eine Variable count, die Sie schrittweise pro Lauf erhöhen, und wenn count% 1000 = 0 und count> 0 drucken Sie die höchste Punktzahl, die Sie möglicherweise von den Iterationen in einer globalen Variable gespeichert haben.

1

Könnten Sie eine Variable definieren Maximum genannt, so dass:

if score > maximum: 
    maximum = score 

?

1

Was Sie brauchen, ist die grundlegende Definition der max-Funktion. Ein Wert, der gleich der ersten Punktzahl ist und dann der neuen Punktzahl zugewiesen wird, wenn eine bessere Punktzahl erreicht wird.

if new_score > max_score: 
    max_score = new_score 

Und auf Ihren Vorschlag, in das meine Erfahrung zeigt, dass mein Vorschlag oder deine Anwendung (alle Werte in einer Liste speichern dann Aufruf max) in den Mitteln von Komplexität jedoch nicht viel Zeit sparen, wenn Sie nicht tun benötigen Sie die Punkte außer der maximalen, Sie verschwenden nur Platz.