Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View 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)

View 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]