Collatz changes
parent
4906e74cf3
commit
2eecbe9980
|
@ -30,14 +30,15 @@ f :: Integer -> Integer
|
||||||
f n = s 1 n
|
f n = s 1 n
|
||||||
where
|
where
|
||||||
s :: Integer -> Integer -> Integer
|
s :: Integer -> Integer -> Integer
|
||||||
s i n
|
s c n
|
||||||
| n == 1 = i
|
| n == 1 = c
|
||||||
| n == 0 = i
|
| n == 0 = c
|
||||||
| n == (-1) = i
|
| n == (-1) = c
|
||||||
| n == (-5) = i
|
| n == (-5) = c
|
||||||
| n == (-17) = i
|
| n == (-17) = c
|
||||||
| even n = s (succ i) (n `div` 2)
|
| even n = s c' (n `div` 2)
|
||||||
| odd n = s (succ i) (3*n + 1)
|
| odd n = s c' (3*n + 1)
|
||||||
|
where c' = succ c
|
||||||
|
|
||||||
f' :: Integer -> Integer
|
f' :: Integer -> Integer
|
||||||
f' n = f'' 1 n
|
f' n = f'' 1 n
|
||||||
|
|
Loading…
Reference in New Issue