我之前曾发布过此问题,但以为我会对其进行修改并尝试更多细节.
我在下面有这张图片.我要完成的工作是从偶数“泡沫”开始,然后从一和零过渡到其他状态.这是我已经完成的工作:
1)创建具有所有状态(偶数和奇数)的mainMap以及另一个正确具有远离该状态的输入(0和1)的映射.
2)将状态从偶数转换为奇数转换.
到目前为止,这是我的代码:
public static void main(String[] args) {
//Mapeven,1->odd]> for first line
Map> mainMap = new ArrayMap>();
//Map
TypedBufferReader input = new TypedBufferReader("Enter Finite Automaton Description File: ");
//read the file.
for (;;) {
try {
String line = input.readLine();
StringTokenizer st = new StringTokenizer(line, ";");
String state = st.nextToken();
Map transitions = mainMap.get(state);
transitions = new ArrayMap();
while (st.hasMoreTokens()) {
String intStateInput = st.nextToken();
String inputState = st.nextToken();
transitions.put(intStateInput, inputState);
}
mainMap.put(state, transitions);
} catch (EOFException e) { break;}
}
//Print in alphabetical order of states. odd/even to even/odd
List mapList = new ArrayList(mainMap.keys());
Collections.sort(mapList);
for (String s : mapList) {
Map tempMap = mainMap.get(s);
System.out.println(s + " transitions = " + tempMap.toString());
}
//Process one line file.
TypedBufferReader oneLineInput = new TypedBufferReader("Enter start state/inputs file: ");
try {
String oneLine = oneLineInput.readLine();
StringTokenizer st = new StringTokenizer(oneLine,";");
String initialState = st.nextToken();
System.out.println("Initial state = " + initialState);
while (st.hasMoreTokens()) {
String inputNum = st.nextToken();
}
} catch (EOFException e) {}
}
}
我应该读取一行内容如下的文件:“ even; 1; 0; 1; 1; 0; 1”
因此,它将打印出even的初始状态,并继续遍历mainMap.
对于一个偶数的初始状态,它将是这样的:
初始状态=偶数
输入= 1状态=奇数
输入= 0状态=奇数
输入= 1状态=偶数
输入= 1状态=奇数
输入= 0状态=奇数
输入= 1状态=偶数
最终状态=偶数
请帮我解决这个问题.