Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
13
Task/Van-Eck-sequence/Haskell/van-eck-sequence-1.hs
Normal file
13
Task/Van-Eck-sequence/Haskell/van-eck-sequence-1.hs
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
import Data.List (elemIndex)
|
||||
import Data.Maybe (maybe)
|
||||
|
||||
vanEck :: Int -> [Int]
|
||||
vanEck n = reverse $ iterate go [] !! n
|
||||
where
|
||||
go [] = [0]
|
||||
go xxs@(x:xs) = maybe 0 succ (elemIndex x xs) : xxs
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
print $ vanEck 10
|
||||
print $ drop 990 (vanEck 1000)
|
||||
22
Task/Van-Eck-sequence/Haskell/van-eck-sequence-2.hs
Normal file
22
Task/Van-Eck-sequence/Haskell/van-eck-sequence-2.hs
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{-# LANGUAGE TupleSections #-}
|
||||
|
||||
import Data.List (mapAccumL)
|
||||
import qualified Data.Map.Strict as M hiding (drop)
|
||||
import Data.Maybe (maybe)
|
||||
|
||||
--------------------- VAN ECK SEQUENCE -------------------
|
||||
|
||||
vanEck :: [Int]
|
||||
vanEck = 0 : snd (mapAccumL go (0, M.empty) [1 ..])
|
||||
where
|
||||
go (x, dct) i =
|
||||
((,) =<< (, M.insert x i dct))
|
||||
(maybe 0 (i -) (M.lookup x dct))
|
||||
|
||||
--------------------------- TEST -------------------------
|
||||
main :: IO ()
|
||||
main =
|
||||
mapM_ print $
|
||||
fmap
|
||||
((drop . subtract 10) <*> flip take vanEck)
|
||||
[10, 1000, 10000, 100000, 1000000]
|
||||
Loading…
Add table
Add a link
Reference in a new issue