Advertisement
Guest User

Untitled

a guest
Dec 10th, 2015
541
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. minutetest = do
  2.   print $ ePo !! 90000
  3.  
  4. main = minutetest
  5.  
  6. elemToString H = "22"
  7. elemToString He = "13112221133211322112211213322112"
  8. elemToString Li = "312211322212221121123222112"
  9. elemToString Be = "111312211312113221133211322112211213322112"
  10. elemToString B = "1321132122211322212221121123222112"
  11. elemToString C = "3113112211322112211213322112"
  12. elemToString N = "111312212221121123222112"
  13. elemToString O = "132112211213322112"
  14. elemToString F = "31121123222112"
  15. elemToString Ne = "111213322112"
  16. elemToString Na = "123222112"
  17. elemToString Mg = "3113322112"
  18. elemToString Al = "1113222112"
  19. elemToString Si = "1322112"
  20. elemToString P = "311311222112"
  21. elemToString S = "1113122112"
  22. elemToString Cl = "132112"
  23. elemToString Ar = "3112"
  24. elemToString K = "1112"
  25. elemToString Ca = "12"
  26. elemToString Sc = "3113112221133112"
  27. elemToString Ti = "11131221131112"
  28. elemToString V = "13211312"
  29. elemToString Cr = "31132"
  30. elemToString Mn = "111311222112"
  31. elemToString Fe = "13122112"
  32. elemToString Co = "32112"
  33. elemToString Ni = "11133112"
  34. elemToString Cu = "131112"
  35. elemToString Zn = "312"
  36. elemToString Ga = "13221133122211332"
  37. elemToString Ge = "31131122211311122113222"
  38. elemToString As = "11131221131211322113322112"
  39. elemToString Se = "13211321222113222112"
  40. elemToString Br = "3113112211322112"
  41. elemToString Kr = "11131221222112"
  42. elemToString Rb = "1321122112"
  43. elemToString Sr = "3112112"
  44. elemToString Y = "1112133"
  45. elemToString Zr = "12322211331222113112211"
  46. elemToString Nb = "1113122113322113111221131221"
  47. elemToString Mo = "13211322211312113211"
  48. elemToString Tc = "311322113212221"
  49. elemToString Ru = "132211331222113112211"
  50. elemToString Rh = "311311222113111221131221"
  51. elemToString Pd = "111312211312113211"
  52. elemToString Ag = "132113212221"
  53. elemToString Cd = "3113112211"
  54. elemToString In = "11131221"
  55. elemToString Sn = "13211"
  56. elemToString Sb = "3112221"
  57. elemToString Te = "1322113312211"
  58. elemToString I = "311311222113111221"
  59. elemToString Xe = "11131221131211"
  60. elemToString Cs = "13211321"
  61. elemToString Ba = "311311"
  62. elemToString La = "11131"
  63. elemToString Ce = "1321133112"
  64. elemToString Pr = "31131112"
  65. elemToString Nd = "111312"
  66. elemToString Pm = "132"
  67. elemToString Sm = "311332"
  68. elemToString Eu = "1113222"
  69. elemToString Gd = "13221133112"
  70. elemToString Tb = "3113112221131112"
  71. elemToString Dy = "111312211312"
  72. elemToString Ho = "1321132"
  73. elemToString Er = "311311222"
  74. elemToString Tm = "11131221133112"
  75. elemToString Yb = "1321131112"
  76. elemToString Lu = "311312"
  77. elemToString Hf = "11132"
  78. elemToString Ta = "13112221133211322112211213322113"
  79. elemToString W = "312211322212221121123222113"
  80. elemToString Re = "111312211312113221133211322112211213322113"
  81. elemToString Os = "1321132122211322212221121123222113"
  82.  
  83. elemToString Ir = "3113112211322112211213322113"
  84. elemToString Pt = "111312212221121123222113"
  85. elemToString Au = "132112211213322113"
  86. elemToString Hg = "31121123222113"
  87. elemToString Tl = "111213322113"
  88. elemToString Pb = "123222113"
  89. elemToString Bi = "3113322113"
  90. elemToString Po = "1113222113"
  91. elemToString At = "1322113"
  92. elemToString Rn = "311311222113"
  93. elemToString Fr = "1113122113"
  94. elemToString Ra = "132113"
  95. elemToString Ac = "3113"
  96. elemToString Th = "1113"
  97. elemToString Pa = "13"
  98. elemToString U = "3"
  99.  
  100. -- Insane, but fast way to solve the question "What is the length of
  101. -- n:th iteration of lookandsay sequence starting with x"
  102. --
  103. -- idea behind this is the same as fibonacci list:
  104. -- fib = 1 : 1 : zipWith (+) fib (tail fib)
  105.  
  106. add3 a b c = a+b+c
  107. add4 a b c d = a+b+c+d
  108. add5 a b c d e = a+b+c+d+e
  109. add6 a b c d e f = a+b+c+d+e+f
  110.  
  111. zipWith4 f (a:as) (b:bs) (c:cs) (d:ds) = f a b c d : zipWith4 f as bs cs ds
  112. zipWith5 f (a:as) (b:bs) (c:cs) (d:ds) (e:es) = f a b c d e : zipWith5 f as bs cs ds es
  113. zipWith6 f (a:as) (b:bs) (c:cs) (d:ds) (e:es) (g:gs) = f a b c d e g : zipWith6 f as bs cs ds es gs
  114.  
  115. elemLen = fromIntegral . length . elemToString
  116.  
  117. eH  = repeat 2
  118. eHe = elemLen He : zipWith5 add5 (eHf) (ePa) (eH) (eCa) (eLi)
  119. eLi = elemLen Li : eHe
  120. eBe = elemLen Be : zipWith3 add3 (eGe) (eCa) (eLi)
  121. eB  = elemLen B  : eBe
  122. eC  = elemLen C  : eB
  123. eN  = elemLen N  : eC
  124. eO  = elemLen O  : eN
  125. eF  = elemLen F  : eO
  126. eNe = elemLen Ne : eF
  127. eNa = elemLen Na : eNe
  128. eMg = elemLen Mg : zipWith (+) (ePm) (eNa)
  129. eAl = elemLen Al : eMg
  130. eSi = elemLen Si : eAl
  131. eP  = elemLen P  : zipWith (+) (eHo) (eSi)
  132. eS  = elemLen S  : eP
  133. eCl = elemLen Cl : eS
  134. eAr = elemLen Ar : eCl
  135. eK  = elemLen K  : eAr
  136. eCa = elemLen Ca : eK
  137. eSc = elemLen Sc : zipWith5 add5 (eHo) (ePa) (eH) (eCa) (eCo)
  138. eTi = elemLen Ti : eSc
  139. eV  = elemLen V  : eTi
  140. eCr = elemLen Cr : eV
  141. eMn = elemLen Mn : zipWith (+) (eCr) (eSi)
  142. eFe = elemLen Fe : eMn
  143. eCo = elemLen Co : eFe
  144. eNi = elemLen Ni : zipWith (+) (eZn) (eCo)
  145. eCu = elemLen Cu : eNi
  146. eZn = elemLen Zn : eCu
  147. eGa = elemLen Ga : zipWith6 add6 (eEu) (eCa) (eAc) (eH) (eCa) (eZn)
  148. eGe = elemLen Ge : zipWith (+) (eHo) (eGa)
  149. eAs = elemLen As : zipWith (+) (eGe) (eNa)
  150. eSe = elemLen Se : eAs
  151. eBr = elemLen Br : eSe
  152. eKr = elemLen Kr : eBr
  153. eRb = elemLen Rb : eKr
  154. eSr = elemLen Sr : eRb
  155. eY  = elemLen Y  : zipWith (+) (eSr) (eU)
  156. eZr = elemLen Zr : zipWith4 add4 (eY) (eH) (eCa) (eTc)
  157. eNb = elemLen Nb : zipWith (+) (eEr) (eZr)
  158. eMo = elemLen Mo : eNb
  159. eTc = elemLen Tc : eMo
  160. eRu = elemLen Ru : zipWith3 add3 (eEu) (eCa) (eTc)
  161. eRh = elemLen Rh : zipWith (+) (eHo) (eRu)
  162. ePd = elemLen Pd : eRh
  163. eAg = elemLen Ag : ePd
  164. eCd = elemLen Cd : eAg
  165. eIn = elemLen In : eCd
  166. eSn = elemLen Sn : eIn
  167. eSb = elemLen Sb : zipWith (+)(ePm) (eSn)
  168. eTe = elemLen Te : zipWith3 add3 (eEu) (eCa) (eSb)
  169. eI  = elemLen I  : zipWith (+) (eHo) (eTe)
  170. eXe = elemLen Xe : eI
  171. eCs = elemLen Cs : eXe
  172. eBa = elemLen Ba : eCs
  173. eLa = elemLen La : eBa
  174. eCe = elemLen Ce : zipWith4 add4 (eLa) (eH) (eCa) (eCo)
  175. ePr = elemLen Pr : eCe
  176. eNd = elemLen Nd : ePr
  177. ePm = elemLen Pm : eNd
  178. eSm = elemLen Sm : zipWith3 add3 (ePm) (eCa) (eZn)
  179. eEu = elemLen Eu : eSm
  180. eGd = elemLen Gd : zipWith3 add3 (eEu) (eCa) (eCo)
  181. eTb = elemLen Tb : zipWith (+) (eHo) (eGd)
  182. eDy = elemLen Dy : eTb
  183. eHo = elemLen Ho : eDy
  184. eEr = elemLen Er : zipWith (+) (eHo) (ePm)
  185. eTm = elemLen Tm : zipWith3 add3 (eEr) (eCa) (eCo)
  186. eYb = elemLen Yb : eTm
  187. eLu = elemLen Lu : eYb
  188. eHf = elemLen Hf : eLu
  189. eTa = elemLen Ta : zipWith5 add5 (eHf) (ePa) (eH) (eCa) (eW)
  190. eW  = elemLen W  : eTa
  191. eRe = elemLen Re : zipWith3 add3 (eGe) (eCa) (eW)
  192. eOs = elemLen Os : eRe
  193. eIr = elemLen Ir : eOs
  194. ePt = elemLen Pt : eIr
  195. eAu = elemLen Au : ePt
  196. eHg = elemLen Hg : eAu
  197. eTl = elemLen Tl : eHg
  198. ePb = elemLen Pb : eTl
  199. eBi = elemLen Bi : zipWith (+) (ePm) (ePb)
  200. ePo = elemLen Po : eBi
  201. eAt = elemLen At : ePo
  202. eRn = elemLen Rn : zipWith (+) (eHo) (eAt)
  203. eFr = elemLen Fr : eRn
  204. eRa = elemLen Ra : eFr
  205. eAc = elemLen Ac : eRa
  206. eTh = elemLen Th : eAc
  207. ePa = elemLen Pa : eTh
  208. eU  = elemLen U  : ePa
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement