Quote (HulioR @ 9 Mar 2017 22:14)
Code
def calculate_blue (red):
return 0.5*((8*red**2+1)**0.5+2*red+1)
prevResult = 15
red = 16
while True:
blue = calculate_blue(red)
if blue == int(blue):
if red + blue >= 10**12:
break
prevResult, red = red, int(red * (red/prevResult))
else:
red += 1
print(int(blue))
Lösung in Python3, Ergebnis: 756872327473
e: Habe die Variablen und die Funktion umbenannt, damit es sich besser lesen lässt.
ich hab es sehr aehnlich gemacht. allerdings war mein erster (naiver) algorithmus sehr langsam...
ich habe letztendlich die ersten 10 zahlen berechnet und dann gesehen, dass die exponentiell wachsen. eine exponentielle regression hat mich dann zu einem wert gebracht, der es in etwa sein koennte.
von dem wert aus hab ich dann mit dem naiven algorithmus nach oben & unten gesucht, und die loesung letztendlich auch gefunden
ging das berechnen mit python3 denn schnell?!
mein java shit hat echt jahre gebraucht
edit: ich finds ansonsten eig gar nicht cool, hier die loesungen ganz zu posten. vllt will das ja noch wer machen.
hab deinen code auch grad erst angeguckt, nachdem ich fertig war.
This post was edited by fernsehen123 on Mar 12 2017 08:33am