Wie exponentiell wachsende Reichweite in Python generiert wird

7

Ich möchte die Leistung einiger Codes mit einem exponentiell ansteigenden Wert testen. Wenn also eine zusätzliche Zahl zu numbers_size hinzugefügt wird, wird das Inkrement mit 10 multipliziert. So mache ich das bisher, aber es sieht ein bisschen hacky aus. Vorschläge für Verbesserungen ohne Einführung von Nicht-Standard-Bibliotheken?

%Vor%     
Martlark 12.07.2012, 01:04
quelle

7 Antworten

7

Um die gleichen Zahlen wie Ihren Code zu erzeugen:

%Vor%     
jfs 12.07.2012, 01:35
quelle
12

Warum nicht

%Vor%

wenn ich deine Absicht richtig lese.

    
msw 12.07.2012 01:12
quelle
8

Wenn Sie numpy als einen der Standards ansehen;), können Sie numpy verwenden. logspace , denn genau das ist es was es tun soll .... (Anmerkung: 100 = 10 ^ 2, 1000000000 = 10 ^ 9)

%Vor%

Beispiel 2 (Anmerkung: 100 = 10 ^ 2, 1000000000 = 10 ^ 9, möchte in einem Schritt 10x gehen, es sind 9-2 + 1 Punkte ...):

%Vor%

Beispiel 3:

%Vor%

In Ihrem Fall verwenden wir endpoint=False , da Sie den Endpunkt nicht einschließen möchten ... (z. B. np.logspace(2,9,num=9-2, endpoint=False) )

    
ntg 10.08.2015 12:45
quelle
3

Am einfachsten ist es, eine lineare Folge von Exponenten zu verwenden:

%Vor%

Sie können die Sequenz in einen eigenen Generator abstrahieren:

%Vor%     
Ned Batchelder 12.07.2012 01:11
quelle
3

Ich mag Ned Batcheldors Antwort, aber ich würde es etwas allgemeiner machen:

%Vor%

dann wird dein Code

%Vor%     
Hugh Bothwell 12.07.2012 01:25
quelle
0

Verwenden eines Generatorausdrucks:

%Vor%     
monkut 12.07.2012 01:16
quelle
-1

Beispiel für "NICHT die Frage richtig lesen" und "NICHT wie man es macht "

%Vor%

Ist so einfach wie es geht ... passen Sie xrange entsprechend an

    
Jon Clements 12.07.2012 01:09
quelle

Tags und Links