Уведомления

Группа в Telegram: @pythonsu

#1 Июль 24, 2008 15:36:06

crchemist
От:
Зарегистрирован: 2008-07-09
Сообщения: 379
Репутация: +  0  -
Профиль   Отправить e-mail  

Как еще можно оптимизировать следующий код?

справді - пиши сюда http://www.spoj.pl/forum/viewforum.php?f=20 Цей форум більше відповідає твоїм питанням



Офлайн

#2 Июль 24, 2008 19:58:51

izekia
От:
Зарегистрирован: 2008-07-19
Сообщения: 317
Репутация: +  12  -
Профиль   Отправить e-mail  

Как еще можно оптимизировать следующий код?

crchemist тот форум мертвый, да и потом там не принято постить решения



Офлайн

#3 Июль 24, 2008 23:58:15

crchemist
От:
Зарегистрирован: 2008-07-09
Сообщения: 379
Репутация: +  0  -
Профиль   Отправить e-mail  

Как еще можно оптимизировать следующий код?

izekia
Как еще можно оптимизировать следующий код?
http://docs.python.org/lib/bytecodes.html )) python asm

from new import function, code
….
завтра попробую



Офлайн

#4 Июль 25, 2008 07:08:40

izekia
От:
Зарегистрирован: 2008-07-19
Сообщения: 317
Репутация: +  12  -
Профиль   Отправить e-mail  

Как еще можно оптимизировать следующий код?

да, весело
тоже надо бы попробовать, но мне кажется на большой задаче выигрыш будет



Офлайн

#5 Июль 25, 2008 09:03:06

izekia
От:
Зарегистрирован: 2008-07-19
Сообщения: 317
Репутация: +  12  -
Профиль   Отправить e-mail  

Как еще можно оптимизировать следующий код?

Интересная вещь, у меня этот код:

import psyco
psyco.full()

import sys

from cStringIO import StringIO
import gc; gc.disable()
fin = StringIO(sys.stdin.read())
fout = StringIO()
rinput = fin.readline
routput = fout.write
#rinput = sys.stdin.readline
#routput = sys.stdout.write

#from math import log
cache = []

def fillCache(maxVal):
curPowVal = 5
while curPowVal <= maxVal:
cache.append(curPowVal)
curPowVal *= 5

def main():
vals = []
fillCache(1000000000)
for i in xrange(int(rinput())):
vals.append(int(rinput()))
#val = int(rinput())
#print sum([val // divisor for divisor in cache])
for val in vals:
print sum([val // divisor for divisor in cache])#[:int(log(val, 5)) + 1]])
main()
работает быстрее на 2 десятых, чем:
import psyco
psyco.full()

import sys

from cStringIO import StringIO
import gc; gc.disable()
fin = StringIO(sys.stdin.read())
fout = StringIO()
rinput = fin.readline
routput = fout.write
#rinput = sys.stdin.readline
#routput = sys.stdout.write

#from math import log
cache = []

def fillCache(maxVal):
curPowVal = 5
while curPowVal <= maxVal:
cache.append(curPowVal)
curPowVal *= 5

def main():
#vals = []
fillCache(1000000000)
for i in xrange(int(rinput())):
#vals.append(int(rinput()))
val = int(rinput())
print sum([val // divisor for divisor in cache])
#for val in vals:
#print sum([val // divisor for divisor in cache])#[:int(log(val, 5)) + 1]])
main()



Офлайн

#6 Июль 25, 2008 09:20:03

evgenyl
От:
Зарегистрирован: 2008-07-22
Сообщения: 148
Репутация: +  0  -
Профиль   Отправить e-mail  

Как еще можно оптимизировать следующий код?

кстати psyco не работает на 64 битных системах :(



Офлайн

#7 Июль 25, 2008 09:28:55

izekia
От:
Зарегистрирован: 2008-07-19
Сообщения: 317
Репутация: +  12  -
Профиль   Отправить e-mail  

Как еще можно оптимизировать следующий код?

evgenyl, спасибо за информацию, но судя по всему на сфере не 64-битная система :)



Офлайн

#8 Июль 25, 2008 18:27:14

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Как еще можно оптимизировать следующий код?

в prime1 кто-то вложился по времени? интересн окак там 0.5с получиться может…

Офлайн

#9 Июль 28, 2008 10:46:54

izekia
От:
Зарегистрирован: 2008-07-19
Сообщения: 317
Репутация: +  12  -
Профиль   Отправить e-mail  

Как еще можно оптимизировать следующий код?

slav0nic
в prime1 кто-то вложился по времени? интересн окак там 0.5с получиться может…
я уложился, но оптимизацией не занимался :)
вообще там тупо можно все простые по максисуму прописать в код, соответственно время на их расчет убрать, а дальше обнулять по заданной решетке и filter(None, обработанный_диапазон) делать



Офлайн

#10 Июль 28, 2008 12:49:56

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Как еще можно оптимизировать следующий код?

да я уже вроде тож разобрался, а с MUL вот задница)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version