Увы, тупой кодинг здесь не поможет. Там имеет значение, как указанные 2*2*3*109 точек лягут на сетку 8х8 пикселей на всё пространство 1024x1024.
Плюс отдельного разбирательства требует алгоритм Хаффмена. Пошёл копать литературу по дискретному косинус-преобразованию (разновидность разложения в ряд Фурье). --- Dmitriy V. Simonov, Perl & Python programmer 2012/10/26 Mons Anderson <[email protected]>: > ну например вот так: > > # этот блок кода надо ускорить > srand(60); > my @colors = map { Imager::Color->new(($_)x3 ); } 0..255; > for my $i (0..39293) { > $image->setpixel( x => rand(1024), y => rand(1024), color => > $colors[ rand(256) ]); > } > # этот блок кода надо ускорить > > > на моей машине соотношение в 3.9 раз лучше, чем у оригинала. > > > 2012/10/26 Михаил Монашёв <[email protected]> >> >> Здравствуйте. >> >> Вдогонку... >> >> Конкурс не о том, как всех обмануть, найдя лазейку в условии задачи. >> Он про другое. >> >> Поэтому, например, решения из генерённого кода типа многократного >> повторения строчек вида: >> >> $image->setpixel(x=>12, y=>34, color=>Imager::Color->new(56, 78, 90 )); >> >> не принимаются. >> >> -- >> С уважением, >> Михаил mailto:[email protected] >> >> -- >> Moscow.pm mailing list >> [email protected] | http://moscow.pm.org > > > > > -- > Best wishes, > Vladimir V. Perepelitsa aka Mons Anderson > <[email protected]>, <[email protected]> > http://github.com/Mons > > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org > -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
