0votos

Sucesiones Decimales (sucesiones Binarias parte 2) en Haskell

por josejuan hace 1 año

Se resuelve para cualquier base (no sea te de la tentación de pedirlo para otra base diferente ;P )

Todas las combinaciones de números en base 10 con solo un cambio.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
toGrayBase :: String -> Integer -> String 
toGrayBase base = reverse . rec 
  where b = toInteger $ length base 
        ds = base ++ reverse base 
        rec 0 = [] 
        rec n = ds !! (fromInteger $ n `mod` (2 * b)): rec (n `div` b) 
 
 
{- 
 
-- por ejemplo podemos convertir directamente cualquier número por grande 
-- que sea 
 
> putStrLn $ toGrayBase "0123456789ABCDEFGHIJKLMN" 1234567890987654321234567890987654321 
19D8B99AFIJ4DFDMLF544JJF1CH 
 
 
 
-- o podemos enumerar, claro 
> mapM_ (putStrLn . toGrayBase "0123") [1..40] 
13 
12 
11 
10 
20 
21 
22 
23 
33 
32 
31 
30 
130 
131 
132 
133 
123 
122 
121 
120 
110 
111 
112 
113 
103 
102 
101 
100 
200 
201 
202 
203 
213 
212 
211 
210 
220 
 
-} 
1 comentario
0votos

Escrito por AverageUser hace 1 año

Jaja, esa es la conclusión a la que quería llegar :).

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.