텍스트 출력 파일을 생성하는 프로그램의 일부로 사전 정의 된 번호 n (필수 요소 수에 해당)을 삽입하고 조건을 자동으로 작성해야합니다 그들 사이에.지정된 수의 요소 사이에 조건 집합 인쇄
예. n = 3 인 경우, 요소 s1, s2 및 s3이 생성됩니다. 아래 조건을 자동으로 생성하여 텍스트 파일로 인쇄하는 것입니다.
s1<s2 & s1<s3
s2<=s1 & s2<s3
s3<=s1 & s3<=s2
위의 조건은 요소 간의 가능한 모든 조합을 포함합니다. 나는이 경우 counter
를 사용하여 정확하지 않은 것을 알고
int counter = 0;
ArrayList<String> state = new ArrayList<String>();
for (int i=0; i<=n; i++) {
state.add(i,"s"+1));
}
for (int j=1; j<=n; j++) {
for (int i=0; i<(n-1); i++) {
if (i==(n-2)) {
fw.write(state.get(i)+"<"+state.get(counter));
}
else {
fw.write(state.get(i)+"<"+state.get(counter)+" & ");
}
}
counter++;
}
: 내가 지금까지 가지고하면 미리 정의 된 번호 N하고 필요한 결과를 다음 코드로 많은 요소를 유지하는 ArrayList
입니다 그러나 나는 다른 조건들을 정확하게 표현할 수있는 방법을 생각할 수 없다.
UPDATE :
ArrayList<String> collectStates = new ArrayList<String>();
String activeState,writtenState;
for (int i=0; i<n; i++) {
for (int j=0; j<state.size(); j++) {
if (state.get(i) != state.get(j)) {
activeState=state.get(i)+"<"+state.get(j);
writtenState=state.get(j)+"<"+state.get(i);
if (collectStates.contains(activeState)) {
System.out.print(state.get(i)+"<="+state.get(j));
}
else {
System.out.print(activeState);
}
if (j!=state.size()-1) {
System.out.print(" & ");
}
collectStates.add(writtenState);
}
}
System.out.print("\n");
}
내가받을 출력은 다음과 같습니다 :
s1<s2 & s1<s3
s2<=s1 & s2<s3
s3<=s1 & s3<=s2 &
테스팅 목적으로 다음 코드를 사용하여이
내가 원하는 결과에 가깝게 관리 유일한 문제는 최종 행의 마지막에 여분의 &
입니다. 아직 수정 방법을 모르겠습니다.