Home › フォーラム › AZ-Prologサポート掲示板 › 制約論理で否定の不等号が成り立たない
- このトピックは空です。
-
投稿者投稿
-
-
2018/06/01 4:09 PM #58860kwゲスト
<p>AZ-Prolog Version 9.63 (Linux/x64) GCC 5.4.0<br />
Copyright (C) SOFNEC CO., LTD. 1987-2017/06/29</p>
<p>?- <br />
dlib_require(clp),<br />
N is 5,<br />
length(L,N),<br />
L in 1..N,<br />
L = [A,B,C,D,E],</p>
<p>B #= A,<br />
B #\= C,<br />
B #> D,<br />
B #< E,</p>
<p>B is 2,<br />
labeling(L),</p>
<p>write(L),nl,<br />
fail.</p>
<p>[2,2,1,1,3]<br />
[2,2,1,1,4]<br />
[2,2,1,1,5]<br />
[2,2,2,1,3]<br />
[2,2,2,1,4]<br />
[2,2,2,1,5]<br />
[2,2,3,1,3]<br />
[2,2,3,1,4]<br />
[2,2,3,1,5]<br />
[2,2,4,1,3]<br />
[2,2,4,1,4]<br />
[2,2,4,1,5]<br />
[2,2,5,1,3]<br />
[2,2,5,1,4]<br />
[2,2,5,1,5]<br />
no</p> -
2018/06/01 4:15 PM #58861kwゲスト
<p>% sort.pl<br />
randlist(N,A,Z):-<br />
length(Z,N),<br />
randlist_(Z,A).</p>
<p>randlist_([],_):-!.</p>
<p>randlist_([A|L],B):-<br />
s_random(B,A),<br />
randlist_(L,B).</p>
<p><br />
bubble_sort(A,Z):-<br />
list(A),<br />
bubble_sort(A,T-T,Z).</p>
<p>bubble_sort([],[]-[],[]):-!.</p>
<p>bubble_sort([A],T-[],[A|Z]):-!,<br />
bubble_sort(T,S-S,Z).</p>
<p>bubble_sort([A,B|L],T-[B|S],Z):-<br />
A < B, !,<br />
bubble_sort([A|L],T-S,Z).</p>
<p>bubble_sort([A|L],T-[A|S],Z):-<br />
bubble_sort(L,T-S,Z).</p>
<p><br />
$ prolog_c<br />
AZ-Prolog Version 9.63 (Linux/x64) GCC 5.4.0<br />
Copyright (C) SOFNEC CO., LTD. 1987-2017/06/29<br />
?-s_new,[-‘sort.pl’].<br />
yes<br />
?- debug.<br />
yes<br />
debug mode on<br />
?- set_write_list_length(_,3),<br />
randlist(550,100,A),<br />
bubble_sort(A,Z).<br />
Segmentation fault (コアダンプ)</p>
<p>% トレースログ<br />
% Match : bubble_sort([96,96,96|~],[99,99,99|~]-[96|S_1905901],Z_1905635) :-<br />
% 96<96,<br />
% !,<br />
% bubble_sort([96,96,96|~],[99,99,99|~]-S_1905901,Z_1905635).<br />
%Segmentation fault (コアダンプ)</p>
<p><br />
$ prolog_c -l 10000<br />
?-s_new,[-‘sort.pl’].<br />
?- debug.</p>
<p>?- set_write_list_length(_,3),<br />
randlist(550,100,A),<br />
bubble_sort(A,Z).<br />
_.4 = 3,<br />
A = [89,38,23|~],<br />
Z = [0,0,0|~]</p>
<p>?- set_write_list_length(_,3),<br />
randlist(1000,100,A),<br />
bubble_sort(A,Z).<br />
Global stack overflow —- Backtrace</p>
<p>% 追記<br />
% Windowでは発生しない。</p>
<p>||?- set_write_list_length(_,3),<br />
|| randlist(550,100,A),<br />
|| bubble_sort(A,Z).<br />
Local stack overflow —- Backtrace</p>
-
-
投稿者投稿
- フォーラム「AZ-Prologサポート掲示板」には新規投稿および返信を追加できません。