Sé que puedo hacer X is random(10).
para obtener un número aleatorio de 0 a 10, pero ¿hay algún comando similar para obtener un elemento coincidente aleatorio?Elementos aleatorios en Prolog
5
A
Respuesta
3
Puede implementarlo. He aquí una versión:
%% choose(List, Elt) - chooses a random element
%% in List and unifies it with Elt.
choose([], []).
choose(List, Elt) :-
length(List, Length),
random(0, Length, Index),
nth0(Index, List, Elt).
De http://ozone.wordpress.com/2006/02/22/little-prolog-challenge/
6
SWI-Prolog v6 ha random_member/2
define así: ejemplo
?- listing(random_member).
random:random_member(D, A) :-
length(A, B),
C is random(B),
nth0(C, A, D).
Uso:
?- random_member(a(N), [a(1), a(2), b(3)]).
N = 1.
?- random_member(a(N), [a(1), a(2), b(3)]).
N = 1.
?- random_member(a(N), [a(1), a(2), b(3)]).
N = 2.
?- random_member(a(N), [a(1), a(2), b(3)]).
false.
?- random_member(a(N), [a(1), a(2), b(3)]).
false.
?- random_member(a(N), [a(1), a(2), b(3)]).
N = 2.
es probable que desee utilizar en el modo (-,+)
sin embargo.
Cuestiones relacionadas
- 1. Elementos aleatorios en XSLT
- 2. Seleccione 5 elementos aleatorios
- 3. Cómo obtener elementos aleatorios en jquery?
- 4. Prolog eliminar elementos múltiples de una lista
- 5. Suma de elementos en la lista en Prolog
- 6. Estructura de datos para elegir elementos aleatorios?
- 7. Como llegar elementos aleatorios de una matriz
- 8. Recuperar x elementos aleatorios de una matriz
- 9. ¿Cómo selecciono 10 elementos aleatorios de una lista en PHP?
- 10. Prolog: ¿cómo comprobar si una lista incluye ciertos elementos?
- 11. ¿Cómo añado listas en prolog?
- 12. ¿Cómo selecciono 2 elementos aleatorios de un conjunto de Python?
- 13. Lógica en Prolog
- 14. Tablas hash en prolog
- 15. Cargando archivos en Prolog
- 16. Ordenar cadenas en Prolog
- 17. Cómo negar en Prolog
- 18. Hola mundo en Prolog
- 19. Intérprete basado en Prolog
- 20. ¿Qué significa \ + en Prolog?
- 21. subconjuntos en Prolog
- 22. Constantes Prolog
- 23. función de alimentación en prolog
- 24. Concatenación de listas en Prolog
- 25. Vendedor ambulante simplificado en Prolog
- 26. Ordenando una lista en Prolog
- 27. Control de predicados en Prolog
- 28. Escribiendo en el archivo (Prolog)
- 29. agregado/3 en swi-prolog
- 30. RegEx Parser escrito en Prolog
Whoa allí, la primera cláusula de elegir/2 no es lo que quieres. Si la lista está vacía, no debe producir soluciones en lugar de unificar a Elt con la lista vacía. "elegir ([], _): -!, fallar". lo arreglaría Además, esto genera un número infinito de soluciones que generalmente no es deseable. – rndmcnlly