http://d.hatena.ne.jp/shindannin/20111202/1322833089 Ja, die Referenz für heute Abend stammt aus dem obigen Link
Problem 1 Zähle FizzBuzz Wie viele ganze Zahlen von A nach B sind durch 3 oder 5 teilbar? Damit Das Nachdrucken des Beispiels der anderen Partei ist verwirrend, also nur für mich
Round-Robin mit for-Schleife.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import sys
import io
import re
import math
####Vorbereitung der Speicherauslastung und Betriebszeitprüfung
from guppy import hpy
import time
h = hpy()
start = time.clock()
####Bis hierher
i=0
j=0
#ex1
for x in range(5, 11):
if x%3==0 or x%5==0:
i+=1
#ex2
for y in range(14, 17):
if y%3==0 or y%5==0:
j+=1
print 'ex1:'+str(i),'ex2:'+str(j)
####Speichernutzung und Betriebszeitausgabe
end = time.clock()
print h.heap()
print end-start
Ist der Bereich (5,11) zu intuitiv, um mit 5 von 10 auf 10 zu wechseln? Ich glaube nicht, aber das hat mir nicht gefallen, als ich in einer Weile eine ganze Zahl zwischen A und B geschrieben habe.
Wenn in while-Anweisung geschrieben.py
i=0
a,b =5,10
#↓ wird angegeben, um zwischen A und B ausgeführt zu werden
while a<=b:
#Wenn es durch 3 oder 5 teilbar ist, addiere 1 zum Zähler
if a%3==0 or a%5==0:
i+=1
#Addieren Sie 1 durch a, bevor Sie zur Bedingungsbeurteilung der Ausführung des while-Teils zurückkehren
a+=1
Hmmm, ich denke für ist in diesem Fall besser. Und als nächstes
Problem 2 Zähle FizzBuzz (2) x ist eine ganze Zahl von 0 bis X, y ist eine ganze Zahl von 0 bis Y und z ist eine ganze Zahl von 0 bis Z. Wie viele Kombinationen von (x, y, z) gibt es, in denen x + y * y + z * z * z * z durch 3 oder 5 teilbar ist?
Round-Robin mit mehreren for-Schleifen
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import sys
import io
import re
import math
####Vorbereitung der Speicherauslastung und Betriebszeitprüfung
from guppy import hpy
import time
h = hpy()
start = time.clock()
####Bis hierher
i=0
for x in range(0,101):
for y in range(0,101):
for z in range(0,101):
tmp=x + y*y + z*z*z*z
if tmp%3==0 or tmp%5==0:
i+=1
else:
pass
print i
####Speichernutzung und Betriebszeitausgabe
end = time.clock()
print h.heap()
print end-start
Vorerst habe ich es zwar geschrieben, aber das ist auch nicht schön. .. .. Die Ausführungsgeschwindigkeit betrug für die for-Anweisung etwa 0,61 Sekunden und für die while-Anweisung etwa 0,70 Sekunden.
Bei Verwendung während.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import sys
import io
import re
import math
####Vorbereitung der Speicherauslastung und Betriebszeitprüfung
from guppy import hpy
import time
h = hpy()
start = time.clock()
####Bis hierher
i=0
x=y=z=0
while x<=100:
while y<=100:
while z<=100:
tmp=x + y*y + z*z*z*z
if tmp%3==0 or tmp%5==0:
i+=1
else:
pass
z+=1
y+=1
z=0
x+=1
y=0
print i
####Speichernutzung und Betriebszeitausgabe
end = time.clock()
print h.heap()
print end-start
Ich glaube, ich habe irgendwo anders gesehen: Pass ist unnötig, nutzlos und sollte nicht geschrieben werden, aber ich schreibe es oft. .. .. Wenn Sie während einmal beenden und dann erneut in einer Schleife zurückkehren, um die untergeordnete Anweisung while auszuführen, können Sie nach einer anderen Methode suchen, als dem Zähler beim Beenden 0 neu zuzuweisen. .. ..
from __future__ import print_function
Wird ab morgen aufgenommen.
Das ist alles für heute Abend.
Recommended Posts