나는 X is random(10).
을 0에서 10까지 임의의 숫자를 얻기 위해 할 수 있다는 것을 알고 있지만, 무작위로 일치하는 항목을 얻는 비슷한 명령이 있습니까?프롤로그의 무작위 아이템
5
A
답변
3
구현할 수 있습니다.
%% 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).
http://ozone.wordpress.com/2006/02/22/little-prolog-challenge/에서
6
SWI - 프롤로그 버전 6이 같은 random_member/2
을 정의했습니다 :
?- listing(random_member).
random:random_member(D, A) :-
length(A, B),
C is random(B),
nth0(C, A, D).
사용 예 :
?- 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.
당신은 아마 사용하려면 다음 버전입니다 그것도 (-,+)
모드.
관련 문제
- 1. 무작위 아이템 데이터 세트에 대한 페이징
- 2. Python : 두 개만 결합 된 목록의 무작위 아이템
- 3. 프롤로그의 기능
- 4. 프롤로그의 퍼스트 - 퍼스트
- 5. 프롤로그의 규칙 종속성 그래프
- 6. 프롤로그의 인접 매트릭스
- 7. 프롤로그의 기본 라이브러리 시스템
- 8. 프롤로그의 "동적"조건 자
- 9. 프롤로그의 DCG 관련 문제
- 10. 프롤로그의 고유 한 결과
- 11. 프롤로그의 목록으로 쿼리 확장
- 12. 프롤로그의 경험적 알고리즘
- 13. 프롤로그의 DCG - 문자열
- 14. 아이템 - 아이템 관계에 대한 레일스 모델 연관성?
- 15. 프롤로그의 재귀가 발생하지 않는다고 생각합니다.
- 16. 커스텀 아이템 렌더러에서 TileList 아이템 인덱스에 액세스하는 방법
- 17. 라텍스의 아이템 아이템 사이의 간격을 변경하는 방법은 무엇입니까?
- 18. 스파크 목록 아이템 렌더러
- 19. 안드로이드에서 ListView 아이템 반복하기
- 20. Silverlight의 애니메이션 아이템 컨트롤
- 21. JPanel에서 아이템 이동하기
- 22. WPF 하이라이트 아이템
- 23. Jquery caption 스타일 아이템
- 24. 레일즈 아이템 헬프
- 25. 무작위 셔플?
- 26. 무작위 배열
- 27. 무작위 통보
- 28. 프롤로그의 원자 문제 및 초급 재료.
- 29. 프롤로그의 목록에 쿼리의 모든 결과 넣기
- 30. 프롤로그의 존재 한정자, setof/bagof 사용
거기에서, choose/2의 첫 번째 절은 원하는 것이 아닙니다. 목록이 비어있는 경우 Elt를 빈 목록으로 통합하는 대신 솔루션을 생성해서는 안됩니다. "choose ([], _) : -!, 실패." 그것을 고칠 것이다. 또한 일반적으로 바람직하지 않은 솔루션이 무한대로 생성됩니다. – rndmcnlly