1
나는 변수 세트가 T_1, T_2, ..., T_N
나는 CLPFD에 다음 의사 코드를 다시 작성하고 싶습니다 :CLPFD에서 다음 시나리오에 대한 변수를 정의하는 방법은 무엇입니까?
T_1 in 0..59,
T_2 in 0..59,
...
T_n in 0..59,
all_different([T_1, T_2, ..., T_n]),
FOREACH x in 0 to 59 do:
IF (x \in [T_1, T_2, T_3, ..., T_n]) THEN
Slot_x = 1
ELSE
Slot_x = 0
ENDFOREACH
내가 어떻게 할 수 있습니까?
나는 count을 사용합니다 :
T_1 in 0..59,
T_2 in 0..59,
...
count(0, [T_1, T_2, ..., T_n], #=, Slot_0) % The number 0 can be at most once in the list
count(1, [T_1, T_2, ..., T_n], #=, Slot_1) % The number 1 can be at most once in the list
...
하지만 난 경험이 많은 프로그래머가이 방법을 쓸 것이라고 생각합니다.
당신은'도움이 될 수 있습니다 (60 개) 변수의 목록을 작성하는'길이 (TS, 60)를 사용할 수 있습니다. –
나는 프롤로그 프로그램을 생성하므로 결과 소스 코드가 간결하다면 그렇게 중요하지 않습니다. 게다가, 제 버전에서는 간단하게 다음과 같이 쓸 수 있습니다 : Slot_3 + Slot_10 + Slot_34 # <3. 나는'length (Ts, 60)'로 좀더 장황해질 것이라고 생각합니다. 그래도 의견을 보내 주셔서 감사합니다. –