Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- minutetest = do
- print $ ePo !! 90000
- main = minutetest
- elemToString H = "22"
- elemToString He = "13112221133211322112211213322112"
- elemToString Li = "312211322212221121123222112"
- elemToString Be = "111312211312113221133211322112211213322112"
- elemToString B = "1321132122211322212221121123222112"
- elemToString C = "3113112211322112211213322112"
- elemToString N = "111312212221121123222112"
- elemToString O = "132112211213322112"
- elemToString F = "31121123222112"
- elemToString Ne = "111213322112"
- elemToString Na = "123222112"
- elemToString Mg = "3113322112"
- elemToString Al = "1113222112"
- elemToString Si = "1322112"
- elemToString P = "311311222112"
- elemToString S = "1113122112"
- elemToString Cl = "132112"
- elemToString Ar = "3112"
- elemToString K = "1112"
- elemToString Ca = "12"
- elemToString Sc = "3113112221133112"
- elemToString Ti = "11131221131112"
- elemToString V = "13211312"
- elemToString Cr = "31132"
- elemToString Mn = "111311222112"
- elemToString Fe = "13122112"
- elemToString Co = "32112"
- elemToString Ni = "11133112"
- elemToString Cu = "131112"
- elemToString Zn = "312"
- elemToString Ga = "13221133122211332"
- elemToString Ge = "31131122211311122113222"
- elemToString As = "11131221131211322113322112"
- elemToString Se = "13211321222113222112"
- elemToString Br = "3113112211322112"
- elemToString Kr = "11131221222112"
- elemToString Rb = "1321122112"
- elemToString Sr = "3112112"
- elemToString Y = "1112133"
- elemToString Zr = "12322211331222113112211"
- elemToString Nb = "1113122113322113111221131221"
- elemToString Mo = "13211322211312113211"
- elemToString Tc = "311322113212221"
- elemToString Ru = "132211331222113112211"
- elemToString Rh = "311311222113111221131221"
- elemToString Pd = "111312211312113211"
- elemToString Ag = "132113212221"
- elemToString Cd = "3113112211"
- elemToString In = "11131221"
- elemToString Sn = "13211"
- elemToString Sb = "3112221"
- elemToString Te = "1322113312211"
- elemToString I = "311311222113111221"
- elemToString Xe = "11131221131211"
- elemToString Cs = "13211321"
- elemToString Ba = "311311"
- elemToString La = "11131"
- elemToString Ce = "1321133112"
- elemToString Pr = "31131112"
- elemToString Nd = "111312"
- elemToString Pm = "132"
- elemToString Sm = "311332"
- elemToString Eu = "1113222"
- elemToString Gd = "13221133112"
- elemToString Tb = "3113112221131112"
- elemToString Dy = "111312211312"
- elemToString Ho = "1321132"
- elemToString Er = "311311222"
- elemToString Tm = "11131221133112"
- elemToString Yb = "1321131112"
- elemToString Lu = "311312"
- elemToString Hf = "11132"
- elemToString Ta = "13112221133211322112211213322113"
- elemToString W = "312211322212221121123222113"
- elemToString Re = "111312211312113221133211322112211213322113"
- elemToString Os = "1321132122211322212221121123222113"
- elemToString Ir = "3113112211322112211213322113"
- elemToString Pt = "111312212221121123222113"
- elemToString Au = "132112211213322113"
- elemToString Hg = "31121123222113"
- elemToString Tl = "111213322113"
- elemToString Pb = "123222113"
- elemToString Bi = "3113322113"
- elemToString Po = "1113222113"
- elemToString At = "1322113"
- elemToString Rn = "311311222113"
- elemToString Fr = "1113122113"
- elemToString Ra = "132113"
- elemToString Ac = "3113"
- elemToString Th = "1113"
- elemToString Pa = "13"
- elemToString U = "3"
- -- Insane, but fast way to solve the question "What is the length of
- -- n:th iteration of lookandsay sequence starting with x"
- --
- -- idea behind this is the same as fibonacci list:
- -- fib = 1 : 1 : zipWith (+) fib (tail fib)
- add3 a b c = a+b+c
- add4 a b c d = a+b+c+d
- add5 a b c d e = a+b+c+d+e
- add6 a b c d e f = a+b+c+d+e+f
- zipWith4 f (a:as) (b:bs) (c:cs) (d:ds) = f a b c d : zipWith4 f as bs cs ds
- 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
- 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
- elemLen = fromIntegral . length . elemToString
- eH = repeat 2
- eHe = elemLen He : zipWith5 add5 (eHf) (ePa) (eH) (eCa) (eLi)
- eLi = elemLen Li : eHe
- eBe = elemLen Be : zipWith3 add3 (eGe) (eCa) (eLi)
- eB = elemLen B : eBe
- eC = elemLen C : eB
- eN = elemLen N : eC
- eO = elemLen O : eN
- eF = elemLen F : eO
- eNe = elemLen Ne : eF
- eNa = elemLen Na : eNe
- eMg = elemLen Mg : zipWith (+) (ePm) (eNa)
- eAl = elemLen Al : eMg
- eSi = elemLen Si : eAl
- eP = elemLen P : zipWith (+) (eHo) (eSi)
- eS = elemLen S : eP
- eCl = elemLen Cl : eS
- eAr = elemLen Ar : eCl
- eK = elemLen K : eAr
- eCa = elemLen Ca : eK
- eSc = elemLen Sc : zipWith5 add5 (eHo) (ePa) (eH) (eCa) (eCo)
- eTi = elemLen Ti : eSc
- eV = elemLen V : eTi
- eCr = elemLen Cr : eV
- eMn = elemLen Mn : zipWith (+) (eCr) (eSi)
- eFe = elemLen Fe : eMn
- eCo = elemLen Co : eFe
- eNi = elemLen Ni : zipWith (+) (eZn) (eCo)
- eCu = elemLen Cu : eNi
- eZn = elemLen Zn : eCu
- eGa = elemLen Ga : zipWith6 add6 (eEu) (eCa) (eAc) (eH) (eCa) (eZn)
- eGe = elemLen Ge : zipWith (+) (eHo) (eGa)
- eAs = elemLen As : zipWith (+) (eGe) (eNa)
- eSe = elemLen Se : eAs
- eBr = elemLen Br : eSe
- eKr = elemLen Kr : eBr
- eRb = elemLen Rb : eKr
- eSr = elemLen Sr : eRb
- eY = elemLen Y : zipWith (+) (eSr) (eU)
- eZr = elemLen Zr : zipWith4 add4 (eY) (eH) (eCa) (eTc)
- eNb = elemLen Nb : zipWith (+) (eEr) (eZr)
- eMo = elemLen Mo : eNb
- eTc = elemLen Tc : eMo
- eRu = elemLen Ru : zipWith3 add3 (eEu) (eCa) (eTc)
- eRh = elemLen Rh : zipWith (+) (eHo) (eRu)
- ePd = elemLen Pd : eRh
- eAg = elemLen Ag : ePd
- eCd = elemLen Cd : eAg
- eIn = elemLen In : eCd
- eSn = elemLen Sn : eIn
- eSb = elemLen Sb : zipWith (+)(ePm) (eSn)
- eTe = elemLen Te : zipWith3 add3 (eEu) (eCa) (eSb)
- eI = elemLen I : zipWith (+) (eHo) (eTe)
- eXe = elemLen Xe : eI
- eCs = elemLen Cs : eXe
- eBa = elemLen Ba : eCs
- eLa = elemLen La : eBa
- eCe = elemLen Ce : zipWith4 add4 (eLa) (eH) (eCa) (eCo)
- ePr = elemLen Pr : eCe
- eNd = elemLen Nd : ePr
- ePm = elemLen Pm : eNd
- eSm = elemLen Sm : zipWith3 add3 (ePm) (eCa) (eZn)
- eEu = elemLen Eu : eSm
- eGd = elemLen Gd : zipWith3 add3 (eEu) (eCa) (eCo)
- eTb = elemLen Tb : zipWith (+) (eHo) (eGd)
- eDy = elemLen Dy : eTb
- eHo = elemLen Ho : eDy
- eEr = elemLen Er : zipWith (+) (eHo) (ePm)
- eTm = elemLen Tm : zipWith3 add3 (eEr) (eCa) (eCo)
- eYb = elemLen Yb : eTm
- eLu = elemLen Lu : eYb
- eHf = elemLen Hf : eLu
- eTa = elemLen Ta : zipWith5 add5 (eHf) (ePa) (eH) (eCa) (eW)
- eW = elemLen W : eTa
- eRe = elemLen Re : zipWith3 add3 (eGe) (eCa) (eW)
- eOs = elemLen Os : eRe
- eIr = elemLen Ir : eOs
- ePt = elemLen Pt : eIr
- eAu = elemLen Au : ePt
- eHg = elemLen Hg : eAu
- eTl = elemLen Tl : eHg
- ePb = elemLen Pb : eTl
- eBi = elemLen Bi : zipWith (+) (ePm) (ePb)
- ePo = elemLen Po : eBi
- eAt = elemLen At : ePo
- eRn = elemLen Rn : zipWith (+) (eHo) (eAt)
- eFr = elemLen Fr : eRn
- eRa = elemLen Ra : eFr
- eAc = elemLen Ac : eRa
- eTh = elemLen Th : eAc
- ePa = elemLen Pa : eTh
- eU = elemLen U : ePa
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement