wenn ich einen Thread deklariert habe und in der run einen return festgelegt habe:
Code: Alles auswählen
def run(self):
return [zahl1, zahl2]
Code: Alles auswählen
Auffangen = Beispiel.start()
Code: Alles auswählen
Auffangen = [zahl1, zahl2]
Gruß
Code: Alles auswählen
def run(self):
return [zahl1, zahl2]
Code: Alles auswählen
Auffangen = Beispiel.start()
Code: Alles auswählen
Auffangen = [zahl1, zahl2]
Der Thread iteriert etwas durch, und wenn der was gefunden hat, soll er [zahl1, zahl2] ausgeben, wenn nicht, soll er 0 ausgeben...Sirius3 hat geschrieben: Montag 27. August 2018, 18:32 Du kannst es einfach ausprobieren. Und nein, das Hauptprogramm weiß ja nicht, wann der Thread fertig ist. Das muß man entweder low-level per Queues machen oder benutzt was aus multiprocessing.
Code: Alles auswählen
from random import sample, seed
from time import perf_counter
def main():
seed(4227)
k = 123456
numbers = set(sample(range(10 ** 9), 10 ** 7)) | {k - 1234, 1234}
start_time = perf_counter()
result = set()
for n in numbers:
if k - n in numbers:
result.add(tuple(sorted((n, k - n))))
print(perf_counter() - start_time)
print(sorted(result))
if __name__ == "__main__":
main()
Code: Alles auswählen
» python sumofpair.py
1.9390597109959344
[(1234, 122222), (5417, 118039), (12295, 111161), (28475, 94981), (34235, 89221), (37453, 86003), (59618, 63838), (60477, 62979)]
python sumofpair.py 16,76s user 0,97s system 99% cpu 17,905 total
» pypy3 sumofpair.py
1.6923548849954386
[(1234, 122222), (5417, 118039), (12295, 111161), (28475, 94981), (34235, 89221), (37453, 86003), (59618, 63838), (60477, 62979)]
pypy3 sumofpair.py 11,96s user 1,49s system 97% cpu 13,744 total
Code: Alles auswählen
import json
import requests
import time
def loesung(url_chall_7, url_sol_7) -> object:
def search(listoo, k):
for index1 in listoo:
set = index1
for index2 in listoo:
if index2 == set:
pass
else:
if set + index2 == k:
v1 = listoo.index(set)
v2 = listoo.index(index2)
return [v1, v2] #match gefunden
else:
pass
roh = requests.get(url=url_chall_7)
json_roh = roh.json()
k = int(json_roh['k'])
lists: object = json_roh['list']
solution = search(lists,k)
dat = {"token": solution}
result = requests.post(url=url_sol_7, data=json.dumps(dat))
print(result.text) # success.ausgeben falls richtig
#Main
start = time.time()
m = 100
for i in range(m):
loesung("https://cc.the-morpheus.de/challenges/7/", "https://cc.the-morpheus.de/solutions/7/")
print((time.time() - start) / m)
Code: Alles auswählen
import json
import time
import requests
def search(values, k):
for value_a in values:
for value_b in values:
if value_b != value_a and value_a + value_b == k:
return [values.index(value_a), values.index(value_b)]
return None
def loese(challenge_url, solution_url):
challenge = requests.get(url=challenge_url).json()
solution = {'token': search(challenge['list'], challenge['k'])}
response = requests.post(url=solution_url, data=json.dumps(solution))
print(response.text)
def main():
start = time.time()
iteration_count = 100
for _ in range(iteration_count):
loese(
'https://cc.the-morpheus.de/challenges/7/',
'https://cc.the-morpheus.de/solutions/7/'
)
print((time.time() - start) / iteration_count)
if __name__ == '__main__':
main()