zmila: (lunlumulo)
You have earned 2 new awards:
Trinary Triumph: Solve problems 1, 3, 9, 27, 81, and 243
Fibonacci Fever: Solve the first twelve Fibonacci numbered problems
(and reached Level 5, solved 126 out of 351)


amazingly: the 243d i firstly tried by brute-force, but then thought: the more prime factors, the less the resilience, and began
n = 2^4 * 3^3 * 5 * 7 * 11 * 13 * 17 * 19 * 23
println[ eulerPhi[n] / (n-1) < 15499/94744]
and trying to decrease the powers in attempt to find min

учора

Jan. 12th, 2011 08:34 am
zmila: (lunlumulo)
11.11'11 рашыў чарговую 121ю задачу Эйлера - №121 •
па-праўдзе, не сам рашыў, а знайшоў апісаньне рашэньня, узяў адтуль генеруючую функцыю, напісаў яе і атрымаў правільны адказ •

параілі яшчэ http://www.coderloop.com - таксама сайцік для рашэньня праграмісцкіх і альгарытмічных задач • праўда там і людзей і зада ня так шмат • але там так ужо ня схібіш, яны патрабуюць код праграмы, самі запускаюць яго на шэрагу тэстаў •
zmila: (lunlumulo)
яшчэ 2 •

90ю брутфорснуў (спачатку пачаў пісаць вумны хуткі альгартым, але потым палічыў што камбінацыі 6 з 10 - усяго 210)

107ю - пачытаў у вікіпедзіі альгрытм Краскала (наколькі я памятаю, ува ўніверы нас вучылі будаваць мінімальна-зьвязанае дрэва альгарытмам (Прыма-Ярніка-)Дэйкстры ) • зрабіў свой просьценькі аналяг структуры беларуская апазыцыя раз'яднанае мноства

заўважыў, што амаль не ўжываю loop - recur, бо дастаткова map & reduce • упершыню ўжыў новую (v 1.2) функцыю map-indexed
для такіх невялікіх задач можна лёгка праграмаваць зьнізу ўверх: напісаць шэраг простых функцый, адтэсьціць, потым іх камбінаваць і атрымліваць профіт •
цікава было б напісаць нешта ўнушальнае, каб давялося рабіць зьверху ўніз, з тэстамі і мокамі •
zmila: (lunlumulo)
праект ойлера распачаў новы сэзон • там ужо больш за 300 задач •
для тых, хто рашыў больш за 300 стварылі новую катэгорыю - ветэран (малюнак - проста зорачка, х-эдры скончыліся ) •

а я ноч ня спаў, але рашыў чарговую - і зараз маю 116 •

яшчэ адно новаўвядзеньне: малюнак-прафайл
 zmila profile @ project euler
zmila: (Default)
рашыў яшчэ 2 •

98я - вельмі цікавая, рашаў брудна, метадам спроб і памылак і перабора варыянтаў • амаль цалкам у рэплы •

148я - калі бачу лічбу біліён, адразу зразумела, што патрэбны альгарытм, які ня будзе рабіць нешта для кожнага ліку ад 1 да більёна (бо гэта апрыёры даўжэй за хвіліну) •
таму я намаляваў трохвугольнік Паскаля, пабачыў дзе знаходзяцца лікі, што ня дзеляцца на 7, прыдумаў, як іх падлічыць • і проста напісаў адну формулу (вялікую і складаную) і вуаля!

113 / 298
zmila: (Default)
рашыў яшчэ адну, 162ю, таксама той жа альгарытм (праўда там пішуць, што пры дапамозе прынцыпа ўключэньня-выключэньня гэтая задача рашаецца нават алоўкам на паперы), таксама зь першага запуска •

цяпер 111 • але мае клажурныя канкурэнты жвава пабеглі наперад, цяпер я зноў толькі 5 і адрыў у 6 задач •

+= 2

Jun. 15th, 2010 01:25 pm
zmila: (lunlumulo)
яшчэ дзьве задачкі праекта Эйлера, 172 ды 191 •
172 спачатку спрабаваў рашыць з неэфектыўнымі тыпамі дадзеных (map of sets to numbers), а сёньня перабіў у map of numbers  to numbers (мноствы бінарна закадаваў у лікі) •
правільныя адказы за 18 і 1.5 сек адпаведна, зь першай жа спробы - то бок ніякіх дебугінгаў і перарабленьняў •

110 з 294, і 40 да наступнага ўзроўня •

map-reduce

May. 14th, 2010 10:26 am
zmila: (lunlumulo)
задача 164 - гэта амаль тое самае, што было ў 114-117 •
zipmap, reduce над reduce і apply +

; "Elapsed time: 64.764247 msecs"
і ўжо 107

падобна, што задачкі 172 і 178 таксама з гэтай жа воперы •



upd.
наконт 178 не саўраў!
ужо 108
zmila: (lunlumulo)
праблемкі 114 і 115 аказаліся вельмі простымі •
клажура вылічыла рашэньні за 2.5 і 5.7 мілісек адпаведна •

116 - вельмі падобная, але ўжо з рознакаляровымі квадрацікамі • невялічкая праўка ў код 115 і гатова за 5.5 мс •

ужо 105 •

117 таксама з той жа оперы •

чыцер

Apr. 29th, 2010 05:06 pm
zmila: (bicikla neĝero)
напісаў два варыянты рашэньня 134й задачы, абодва былі дзіка тармазнымі (брут-форс) •
пашукаў у інэце, знайшоў альгарытм на хаскелі, перапісаў яго на клажуру - працуе няправільна • вучыць нюансы хаскеля і разбірацца, што я ня так зразумеў, было ўлом • таму спампаваў сам хаскель, запусьціў альгарытм, а той выдаў правільны адказ •
палез на форум, пачытаў, як людзі рашалі, знайшоў варыянт на сі, узяў, перапісаў на клажуры, запусьціў - правільны адказ за менш чым 2 сек •

трэба да канца разабрацца, як працуе гэты, і яшчэ пачытаць, як да гэтай задачы можна ўжыць тэарэму аб кітайскіх астатках

гатовыя 102 задачы з 290 •

ёў!

Apr. 9th, 2010 08:29 am
zmila: (lunlumulo)
учора ноччу за паўгадзіны знайшоў рашэньне 100й па ліку задачы!
перайшоў на 3 узровень •
праект Эйлера мяне павіншаваў: кажа, ты дасягнуў месца сярод першых 2.52% ад усіх удзельнікаў • stat )
zmila: (lunlumulo)
наф сэйд! :))

бадай што цэлы месяц рашаў дзьве праблемы, і вось сёньня, ужываючы нячыстыя метады, збацаў 118ю нарэшце •
варта паглядзець, як іншыя людзі рашалі яе •

засталася адна да наступнага ўзроўню •

pr-eu += 2

Mar. 15th, 2010 10:42 am
zmila: (lunlumulo)
яшчэ дзьве забацаў •

60ю доўга-даўно мусоліў, потым адклаў, а нядаўна пабачыў рашэньне на жс, зробленае нейкім LongWoSion • хуценька перапісаў на клажуру, запусьціў, 172 сек, і гатова • альгарытм, якгрыцца стрэйтфорвард, і чыво я сам сразу так не зрабіў? хацеў аптымальна-эффекціўна, ага •

а 78ю таксама даўно ўжо спрабаваў рашыць на жс, амаль зрабіў даволі хуткі варыянт, але не дастаткова • а зараз наструячыў 10 радкоў на фрынк, запусьціў, 17 сек і гатовы 258-значны лік •

засталося 2 •
zmila: (lunlumulo)
Problem 64 - Elapsed time: 320.920351 msecs (альгарытм узяў з вікіпедзіі)

Problem 124 - Elapsed time: 34387.035218 msecs (правільны адказ с першага разу!)
zmila: (bicikla neĝero)
вікіпедзія піша, што гэта вельмі важна - знайсьці эфектыўны алгарытм, калі рашаеш задачкі з праекта Эйлера •
зрабіў 94ю задачку брут-форсам, усё што здолеў: хутка адкідваць непрахадныя варыянты • але ж гэта ўсё роўна пад біліён праверак • праграмуля шуршала каля 3 хвілінаў •
а калі ведаць пра Primitive Pythagorean Triple, дык усе варыянты знаходзіцца за 14 крокаў (3 сумы, 6 множаньняў кожны, і ніякіх sqrt!) плюс палічыць іх сумму - сапраўды мілісякунды •
zmila: (bicikla neĝero)
з раньня рашаю 54ю задачку з праекта Эйлера, напісаў два варыянты, пасылаў-правяраў - няправільныя, цяпер во нарэшце напісаў правільны, пасылаю адказ, а сайт http://projecteuler.net/ не адказвае • злыдні, не даюць мне мой ЧСВ пачасаць • гэта была б ужо 92 рашоная задачка •

папраўляюся:
запосьціў такі, гэта была s/92/93/я рашоная задачка •

зарэгіўся на irc.freenode, трохі паназіраў за тамашнім каналам #clojure • пабачыў ажно самавО rhickey • ветліва і паважліва павітаўся і падзякаваў за добрую працу •

zmila: (lunlumulo)
за выходныя рашыў яшчэ дзьве эйлераўскіх задачкі • цяпер ужо 90 з 279 •

пачытаў мануаль мовы newLisp - прыкольненькі маленечкі інтэрпрэтуемы варыянт ліспа • (жабаскрыпт у дужках) • усяго 200кб, а мае ўбудаваныя функцыі для доступа да файлавай сыстэмы, баз-даных, і хттп-сервак • дома пад вінь7 ягоны гуй не запусьціўся, давядзецца паснашацца з жабай і яе класпасам •
zmila: (lunlumulo)
спачатку напісаў на Клажуры: problem187.clj )
запусьціў, чакаў больш за хвіліну, нават дзясяткі хвілінаў, але не дачакаўся (рэпл нават выляцеў) •

потым перапісаў тое ж на Фрынк: problem187.frink )
на працоўным кампуцкеры: 29.016 с, дома ноўтбук шуршаў 41.762 с - усё роўна меней за хвіліну пасьпеў •

уся справа ў хуткім nextPrime, пачытаў на форуме, шмат з тых, хто рапартуе пра рашэньне гэтай задачы ў пару сякундаў, ужывалі ўжо загадзя прыгатаваны сьпіс з простых лікаў да 10^8 •

таму і я сеў, накідаў просты цыкл, які скідвае ўсе запар простыя лікі ад 2 да 99999989 • 10 файлаў, 56МБ агулам •
zmila: (Default)
problem 46

What is the smallest odd composite that cannot be written as the sum of a prime and twice a square?
які найменьше складаны лік ня можа быць напісаны як сума простага ліка і падваенага квадрата?
    27 = 19 + 2×2^(2)
    33 = 31 + 2×1^(2)

(defn primes2 [limit]
  "генератар простых лікаў узяў тут: Everybody loves the Sieve of Eratosthenes"
  (next (primes limit))) ; выдаліць першую 2, яна дае цотныя сумы

(defn squares2 [limit]
  "пасьлядоўнасьць падвоеных квадратаў"
  (map #(* 2 % %) (range limit)))

(defn odds [limit]
  "мноства няцотных лікаў"
  (into #{} (map #(+ (* 2 %) 1) (range 1 limit))))

(defn sums [limit]
  "мноства сумаў: просты лік + падвоены квадрат"
  (into #{}
    (for [p (primes2 limit), s (squares2 (int (Math/sqrt limit)))
          :let [ps (+ p s)] :when (< ps limit)]
      ps)))

; розьніца мностваў: усе няцотныя, якія не запісваюцца як сума
(clojure.set/difference (odds 5000) (sums 10000))

; атрымліваем
#{5993 5777}
; і затым
(apply min #{5993 5777})


выйшла нават карацей ды ізяшчней за першую спробу на жаваскрыпце, якую я напісаў сёньня ноччу, бо не спалося •
у выніку: рашыў 82 з 277 праблемаў • 18 да наступнага ўзроўня •
zmila: (lunlumulo)
атрымліваю задавальненьне ад аднарадовак:

(defn problem56 []
    (reduce max (for [a (range 2 101), b (range 2 101)] (sum-digits (power a b))))
)

(defn problem29 []
    (count (set (for [a (range 2 101), b (range 2 101)] (power a b))))
)


праўда sum-digits ды power - самапісныя і не ў адзін радок •

Profile

zmila: (Default)
zmi la

December 2016

S M T W T F S
    123
45678910
11121314151617
181920212223 24
25262728293031

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 22nd, 2017 06:23 am
Powered by Dreamwidth Studios