| Copyright | Exercitium (12-05-14) |
|---|---|
| License | GPL-3 |
| Maintainer | JoseA.Alonso@gmail.com |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Ordenada_ciclicamente
Description
Ordenada cíclicamente
Se dice que una sucesión x(1), ..., x(n) está ordenada cíclicamente si existe un índice i tal que la sucesión x(i), x(i+1), ..., x(n), x(1), ..., x(i-1) está ordenada crecientemente.
Definir la función
ordenadaCiclicamente :: Ord a => [a] -> Int
tal que (ordenadaCiclicamente xs) es el índice (empezando en 1) a partir del cual está ordenada, si el la lista está ordenado cíclicamente y 0 en caso contrario. Por ejemplo,
>>>ordenadaCiclicamente [1,2,3,4]1>>>ordenadaCiclicamente [5,8,2,3]3>>>ordenadaCiclicamente [4,6,7,5,4,3]0>>>ordenadaCiclicamente [1,0,1,2]0>>>ordenadaCiclicamente [0,2,0]3>>>ordenadaCiclicamente "cdeab"4
- ordenadaCiclicamente :: Ord a => [a] -> Int
- ordenada :: Ord a => [a] -> Bool
- ordenadaCiclicamente2 :: Ord a => [a] -> Int
- siguienteCiclo :: [a] -> [a]
- listaOrdenadaCicliamente :: Gen [Int]
- prop_equiv_ordenadaCiclicamente1 :: Property
- prop_equiv_ordenadaCiclicamente2 :: [Int] -> Bool
Documentation
ordenadaCiclicamente :: Ord a => [a] -> Int Source #
1ª definición (por comprensión).
ordenada :: Ord a => [a] -> Bool Source #
(ordenada xs) se verifica si la lista xs está ordenada crecientemente. Por ejemplo,
>>>ordenada "acd"True>>>ordenada "acdb"False
ordenadaCiclicamente2 :: Ord a => [a] -> Int Source #
2ª definición (por recursión)
siguienteCiclo :: [a] -> [a] Source #
(siguienteCiclo xs) es la lista obtenida añadiendo el primer elemento de xs al final del resto de xs. Por ejemplo,
>>>siguienteCiclo [3,2,5][2,5,3]
listaOrdenadaCicliamente :: Gen [Int] Source #
Generador de listas ordenadas cíclicamente.
> sample listaOrdenadaCicliamente [] [0,0] [-4,4] [2,4,-3] [2,6,8,-7,-1,1] [3,-1] [-11,-9,-5,-4,0,0,2] [-10,8] [-9,-7,-1,5,-13,-9] [-7,3,17,-15] []
prop_equiv_ordenadaCiclicamente1 :: Property Source #
Comprobación de la equivalencia de las definiciones de
ordenadaCiclicamente sobre listas ordenadas cíclicamente.
>>>quickCheck prop_equiv_ordenadaCiclicamente1+++ OK, passed 100 tests.
prop_equiv_ordenadaCiclicamente2 :: [Int] -> Bool Source #
Comprobación de la equivalencia de las definiciones de
ordenadaCiclicamente.
>>>quickCheck prop_equiv_ordenadaCiclicamente2+++ OK, passed 100 tests.