teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

誤字

2018/11/24 09:00

投稿

hanatarekozoman
hanatarekozoman

スコア14

title CHANGED
File without changes
body CHANGED
@@ -1,165 +1,4 @@
1
- ```java
2
- package testtt;
3
- import ilog.concert.IloException;
4
- import ilog.concert.IloIntVar;
5
- import ilog.concert.IloLinearNumExpr;
6
- import ilog.cplex.IloCplex;
7
- public class test2 {
8
- public static void main(String[] args) {
9
- try {
10
- IloCplex numberlink = new IloCplex();
11
- int row=4;
12
- int column=4;
13
-
14
- IloIntVar s[][] = new IloIntVar[row][column];
15
- for(int i=1;i<=row-1;i++) {
16
- for(int j=1;j<=column;j++) {
17
- s[i][j] = numberlink.boolVar();
18
- }
19
- }
20
-
21
- IloIntVar e[][] = new IloIntVar[row][column];
22
- for(int i=1;i<=row;i++) {
23
- for(int j=1;j<=column-1;j++) {
24
- e[i][j] = numberlink.boolVar();
25
- }
26
- }
27
-
28
- IloLinearNumExpr NumberMath = numberlink.linearNumExpr();
29
- IloIntVar[][] x = new IloIntVar[row][column];
30
- for(int i=1;i<=row;i++) {
31
- for(int j=1;j<=column;j++) {
32
- NumberMath.addTerm(1, x[i][j]);
33
- numberlink.addLe(NumberMath,3); //数字マスは3以下(要変更)
34
- numberlink.addGe(NumberMath, 1); //数字マスは1以上(要変更)
35
- }
36
- }
37
-
38
- IloLinearNumExpr NumberMath1_a = numberlink.linearNumExpr();
39
- NumberMath1_a.addTerm(1,x[1][1]);
40
- numberlink.addEq(NumberMath1_a,1);
41
-
42
- IloLinearNumExpr NumberMath1_b = numberlink.linearNumExpr();
43
- NumberMath1_b.addTerm(1,x[2][3]);
44
- numberlink.addEq(NumberMath1_b,1);
45
-
46
-
47
- IloLinearNumExpr NumberMath2_a = numberlink.linearNumExpr();
48
- NumberMath2_a.addTerm(1,x[1][4]);
49
- numberlink.addEq(NumberMath2_a,2);
50
-
51
- IloLinearNumExpr NumberMath2_b = numberlink.linearNumExpr();
52
- NumberMath2_b.addTerm(1,x[3][2]);
53
- numberlink.addEq(NumberMath2_b,2);
54
-
55
-
56
- IloLinearNumExpr NumberMath3_a = numberlink.linearNumExpr();
57
- NumberMath3_a.addTerm(1,x[2][2]);
58
- numberlink.addEq(NumberMath3_a,3);
59
-
60
- IloLinearNumExpr NumberMath3_b = numberlink.linearNumExpr();
61
- NumberMath3_b.addTerm(1,x[4][4]);
62
- numberlink.addEq(NumberMath3_b,3);
63
-
64
-
65
-
66
- IloLinearNumExpr MathLine = numberlink.linearNumExpr();
67
- for(int i=1;i<=row;i++) {
68
- for(int j=1;j<=column;j++) {
69
- MathLine.addTerm(1, s[i-1][j]);
70
- MathLine.addTerm(1, s[i][j]);
71
- MathLine.addTerm(1, e[i][j-1]);
72
- MathLine.addTerm(1, e[i][j]);
73
- if(i-1==0) {
74
- MathLine.addTerm(-1, s[i-1][j]);
75
- }
76
- if(i==4) {
77
- MathLine.addTerm(-1, s[i][j]);
78
- }
79
- if(j-1==0) {
80
- MathLine.addTerm(-1, e[i][j-1]);
81
- }
82
- if(j==4) {
83
- MathLine.addTerm(-1, e[i][j]);
84
- }
85
- if((i==1&&j==1)||(i==1&&j==4)||(i==2&&j==2)||(i==2&&j==3)||
86
- (i==3&&j==2)||i==4&&j==4) {
87
- numberlink.addEq(MathLine, 1);
88
- }
89
- else {numberlink.addGe(MathLine, 2);
90
- numberlink.addLe(MathLine, 0);}
91
-
92
- }
93
- }
94
-
95
-
96
- IloLinearNumExpr IfsEq1_1 = numberlink.linearNumExpr();
97
- IloLinearNumExpr IfsEq1_2 = numberlink.linearNumExpr();
98
- for(int i=1;i<=row-1;i++) {
99
- for(int j=1;j<=column;j++) {
100
- IfsEq1_1.addTerm(3,s[i][j]);
101
- IfsEq1_1.addTerm(-1,x[i][j]);
102
- IfsEq1_1.addTerm(1,x[i+1][j]);
103
- numberlink.addLe(IfsEq1_1,3);
104
-
105
- IfsEq1_2.addTerm(3,s[i][j]);
106
- IfsEq1_2.addTerm(1,x[i][j]);
107
- IfsEq1_2.addTerm(-1,x[i+1][j]);
108
- numberlink.addLe(IfsEq1_1,3);
109
- }
110
- }
111
-
112
-
113
- IloLinearNumExpr IfeEq1_1 = numberlink.linearNumExpr();
114
- IloLinearNumExpr IfeEq1_2 = numberlink.linearNumExpr();
115
- for(int i=1;i<=row;i++) {
116
- for(int j=1;j<=column-1;j++) {
117
- IfeEq1_1.addTerm(3,e[i][j]);
118
- IfeEq1_1.addTerm(-1,x[i][j]);
119
- IfeEq1_1.addTerm(1,x[i+1][j]);
120
- numberlink.addLe(IfeEq1_1,3);
121
-
122
- IfeEq1_2.addTerm(3,e[i][j]);
123
- IfeEq1_2.addTerm(1,x[i][j]);
124
- IfeEq1_2.addTerm(-1,x[i+1][j]);
125
- numberlink.addLe(IfeEq1_1,3);
126
- }
127
- }
128
-
129
-
130
- IloLinearNumExpr AllLine = numberlink.linearNumExpr();
131
- for(int i=1;i<=row;i++) {
132
- for(int j=1;j<=column-1;j++) {
133
- AllLine.addTerm(1,e[i][j]);
134
- }
135
- }
136
- for(int i=1;i<=row-1;i++) {
137
- for(int j=1;j<=column;j++) {
138
- AllLine.addTerm(1,s[i][j]);
139
- }
140
- }
141
- numberlink.addMinimize(AllLine);
142
-
143
-
144
- if(numberlink.solve()) {
145
- System.out.println("目的関数値は"+numberlink.getObjValue());
146
- for(int i=1;i<=row;i++) {
147
- for(int j=1;j<=column;j++) {
148
- System.out.println(s[i][j]+"="+numberlink.getValue(s[i][j]));
149
- System.out.println(e[i][j]+"="+numberlink.getValue(e[i][j]));
150
- System.out.println(x[i][j]+"="+numberlink.getValue(x[i][j]));
151
- }
152
- }
153
-
154
- }
155
-
156
- }
157
- catch(IloException e) {
158
- }
159
- }
160
- }
161
- ```
162
- 上のコードをEclipseで実行したところ、
1
+ コードをEclipseで実行したところ、
163
2
 
164
3
  Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
165
4
  at testtt.test2.main(test2.java:19)

2

削除された内容の復元を行いました

2018/11/24 09:00

投稿

hanatarekozoman
hanatarekozoman

スコア14

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,165 @@
1
+ ```java
2
+ package testtt;
3
+ import ilog.concert.IloException;
4
+ import ilog.concert.IloIntVar;
5
+ import ilog.concert.IloLinearNumExpr;
6
+ import ilog.cplex.IloCplex;
7
+ public class test2 {
8
+ public static void main(String[] args) {
9
+ try {
10
+ IloCplex numberlink = new IloCplex();
11
+ int row=4;
12
+ int column=4;
13
+
14
+ IloIntVar s[][] = new IloIntVar[row][column];
15
+ for(int i=1;i<=row-1;i++) {
16
+ for(int j=1;j<=column;j++) {
17
+ s[i][j] = numberlink.boolVar();
18
+ }
19
+ }
20
+
21
+ IloIntVar e[][] = new IloIntVar[row][column];
22
+ for(int i=1;i<=row;i++) {
23
+ for(int j=1;j<=column-1;j++) {
24
+ e[i][j] = numberlink.boolVar();
25
+ }
26
+ }
27
+
28
+ IloLinearNumExpr NumberMath = numberlink.linearNumExpr();
29
+ IloIntVar[][] x = new IloIntVar[row][column];
30
+ for(int i=1;i<=row;i++) {
31
+ for(int j=1;j<=column;j++) {
32
+ NumberMath.addTerm(1, x[i][j]);
33
+ numberlink.addLe(NumberMath,3); //数字マスは3以下(要変更)
34
+ numberlink.addGe(NumberMath, 1); //数字マスは1以上(要変更)
35
+ }
36
+ }
37
+
38
+ IloLinearNumExpr NumberMath1_a = numberlink.linearNumExpr();
39
+ NumberMath1_a.addTerm(1,x[1][1]);
40
+ numberlink.addEq(NumberMath1_a,1);
41
+
42
+ IloLinearNumExpr NumberMath1_b = numberlink.linearNumExpr();
43
+ NumberMath1_b.addTerm(1,x[2][3]);
44
+ numberlink.addEq(NumberMath1_b,1);
45
+
46
+
47
+ IloLinearNumExpr NumberMath2_a = numberlink.linearNumExpr();
48
+ NumberMath2_a.addTerm(1,x[1][4]);
49
+ numberlink.addEq(NumberMath2_a,2);
50
+
51
+ IloLinearNumExpr NumberMath2_b = numberlink.linearNumExpr();
52
+ NumberMath2_b.addTerm(1,x[3][2]);
53
+ numberlink.addEq(NumberMath2_b,2);
54
+
55
+
56
+ IloLinearNumExpr NumberMath3_a = numberlink.linearNumExpr();
57
+ NumberMath3_a.addTerm(1,x[2][2]);
58
+ numberlink.addEq(NumberMath3_a,3);
59
+
60
+ IloLinearNumExpr NumberMath3_b = numberlink.linearNumExpr();
61
+ NumberMath3_b.addTerm(1,x[4][4]);
62
+ numberlink.addEq(NumberMath3_b,3);
63
+
64
+
65
+
66
+ IloLinearNumExpr MathLine = numberlink.linearNumExpr();
67
+ for(int i=1;i<=row;i++) {
68
+ for(int j=1;j<=column;j++) {
69
+ MathLine.addTerm(1, s[i-1][j]);
70
+ MathLine.addTerm(1, s[i][j]);
71
+ MathLine.addTerm(1, e[i][j-1]);
72
+ MathLine.addTerm(1, e[i][j]);
73
+ if(i-1==0) {
74
+ MathLine.addTerm(-1, s[i-1][j]);
75
+ }
76
+ if(i==4) {
77
+ MathLine.addTerm(-1, s[i][j]);
78
+ }
79
+ if(j-1==0) {
80
+ MathLine.addTerm(-1, e[i][j-1]);
81
+ }
82
+ if(j==4) {
83
+ MathLine.addTerm(-1, e[i][j]);
84
+ }
85
+ if((i==1&&j==1)||(i==1&&j==4)||(i==2&&j==2)||(i==2&&j==3)||
86
+ (i==3&&j==2)||i==4&&j==4) {
87
+ numberlink.addEq(MathLine, 1);
88
+ }
89
+ else {numberlink.addGe(MathLine, 2);
90
+ numberlink.addLe(MathLine, 0);}
91
+
92
+ }
93
+ }
94
+
95
+
96
+ IloLinearNumExpr IfsEq1_1 = numberlink.linearNumExpr();
97
+ IloLinearNumExpr IfsEq1_2 = numberlink.linearNumExpr();
98
+ for(int i=1;i<=row-1;i++) {
99
+ for(int j=1;j<=column;j++) {
100
+ IfsEq1_1.addTerm(3,s[i][j]);
101
+ IfsEq1_1.addTerm(-1,x[i][j]);
102
+ IfsEq1_1.addTerm(1,x[i+1][j]);
103
+ numberlink.addLe(IfsEq1_1,3);
104
+
105
+ IfsEq1_2.addTerm(3,s[i][j]);
106
+ IfsEq1_2.addTerm(1,x[i][j]);
107
+ IfsEq1_2.addTerm(-1,x[i+1][j]);
108
+ numberlink.addLe(IfsEq1_1,3);
109
+ }
110
+ }
111
+
112
+
113
+ IloLinearNumExpr IfeEq1_1 = numberlink.linearNumExpr();
114
+ IloLinearNumExpr IfeEq1_2 = numberlink.linearNumExpr();
115
+ for(int i=1;i<=row;i++) {
116
+ for(int j=1;j<=column-1;j++) {
117
+ IfeEq1_1.addTerm(3,e[i][j]);
118
+ IfeEq1_1.addTerm(-1,x[i][j]);
119
+ IfeEq1_1.addTerm(1,x[i+1][j]);
120
+ numberlink.addLe(IfeEq1_1,3);
121
+
122
+ IfeEq1_2.addTerm(3,e[i][j]);
123
+ IfeEq1_2.addTerm(1,x[i][j]);
124
+ IfeEq1_2.addTerm(-1,x[i+1][j]);
125
+ numberlink.addLe(IfeEq1_1,3);
126
+ }
127
+ }
128
+
129
+
130
+ IloLinearNumExpr AllLine = numberlink.linearNumExpr();
131
+ for(int i=1;i<=row;i++) {
132
+ for(int j=1;j<=column-1;j++) {
133
+ AllLine.addTerm(1,e[i][j]);
134
+ }
135
+ }
136
+ for(int i=1;i<=row-1;i++) {
137
+ for(int j=1;j<=column;j++) {
138
+ AllLine.addTerm(1,s[i][j]);
139
+ }
140
+ }
141
+ numberlink.addMinimize(AllLine);
142
+
143
+
144
+ if(numberlink.solve()) {
145
+ System.out.println("目的関数値は"+numberlink.getObjValue());
146
+ for(int i=1;i<=row;i++) {
147
+ for(int j=1;j<=column;j++) {
148
+ System.out.println(s[i][j]+"="+numberlink.getValue(s[i][j]));
149
+ System.out.println(e[i][j]+"="+numberlink.getValue(e[i][j]));
150
+ System.out.println(x[i][j]+"="+numberlink.getValue(x[i][j]));
151
+ }
152
+ }
153
+
154
+ }
155
+
156
+ }
157
+ catch(IloException e) {
158
+ }
159
+ }
160
+ }
161
+ ```
1
- Eclipseで実行したところ、
162
+ 上のコードをEclipseで実行したところ、
2
163
 
3
164
  Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
4
165
  at testtt.test2.main(test2.java:19)

1

誤字

2018/11/12 00:02

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,171 +1,5 @@
1
- ```java
2
- package testtt;
1
+ Eclipseで実行したところ、
3
2
 
4
- import ilog.concert.IloException;
5
- import ilog.concert.IloIntVar;
6
- import ilog.concert.IloLinearNumExpr;
7
- import ilog.cplex.IloCplex;
8
-
9
- public class test2 {
10
-
11
- public static void main(String[] args) {
12
- try {
13
- IloCplex numberlink = new IloCplex();
14
- int row=4;
15
- int column=4;
16
-
17
- IloIntVar s[][] = new IloIntVar[row][column];
18
- for(int i=1;i<=row-1;i++) {
19
- for(int j=1;j<=column;j++) {
20
- s[i][j] = numberlink.boolVar();
21
- }
22
- }
23
-
24
- IloIntVar e[][] = new IloIntVar[row][column];
25
- for(int i=1;i<=row;i++) {
26
- for(int j=1;j<=column-1;j++) {
27
- e[i][j] = numberlink.boolVar();
28
- }
29
- }
30
-
31
- IloLinearNumExpr NumberMath = numberlink.linearNumExpr();
32
- IloIntVar[][] x = new IloIntVar[row][column];
33
- for(int i=1;i<=row;i++) {
34
- for(int j=1;j<=column;j++) {
35
- NumberMath.addTerm(1, x[i][j]);
36
- numberlink.addLe(NumberMath,3); //数字マスは3以下(要変更)
37
- numberlink.addGe(NumberMath, 1); //数字マスは1以上(要変更)
38
- }
39
- }
40
-
41
- IloLinearNumExpr NumberMath1_a = numberlink.linearNumExpr();
42
- NumberMath1_a.addTerm(1,x[1][1]);
43
- numberlink.addEq(NumberMath1_a,1);
44
-
45
- IloLinearNumExpr NumberMath1_b = numberlink.linearNumExpr();
46
- NumberMath1_b.addTerm(1,x[2][3]);
47
- numberlink.addEq(NumberMath1_b,1);
48
-
49
-
50
- IloLinearNumExpr NumberMath2_a = numberlink.linearNumExpr();
51
- NumberMath2_a.addTerm(1,x[1][4]);
52
- numberlink.addEq(NumberMath2_a,2);
53
-
54
- IloLinearNumExpr NumberMath2_b = numberlink.linearNumExpr();
55
- NumberMath2_b.addTerm(1,x[3][2]);
56
- numberlink.addEq(NumberMath2_b,2);
57
-
58
-
59
- IloLinearNumExpr NumberMath3_a = numberlink.linearNumExpr();
60
- NumberMath3_a.addTerm(1,x[2][2]);
61
- numberlink.addEq(NumberMath3_a,3);
62
-
63
- IloLinearNumExpr NumberMath3_b = numberlink.linearNumExpr();
64
- NumberMath3_b.addTerm(1,x[4][4]);
65
- numberlink.addEq(NumberMath3_b,3);
66
-
67
-
68
-
69
- IloLinearNumExpr MathLine = numberlink.linearNumExpr();
70
- for(int i=1;i<=row;i++) {
71
- for(int j=1;j<=column;j++) {
72
- MathLine.addTerm(1, s[i-1][j]);
73
- MathLine.addTerm(1, s[i][j]);
74
- MathLine.addTerm(1, e[i][j-1]);
75
- MathLine.addTerm(1, e[i][j]);
76
- if(i-1==0) {
77
- MathLine.addTerm(-1, s[i-1][j]);
78
- }
79
- if(i==4) {
80
- MathLine.addTerm(-1, s[i][j]);
81
- }
82
- if(j-1==0) {
83
- MathLine.addTerm(-1, e[i][j-1]);
84
- }
85
- if(j==4) {
86
- MathLine.addTerm(-1, e[i][j]);
87
- }
88
- if((i==1&&j==1)||(i==1&&j==4)||(i==2&&j==2)||(i==2&&j==3)||
89
- (i==3&&j==2)||i==4&&j==4) {
90
- numberlink.addEq(MathLine, 1);
91
- }
92
- else {numberlink.addGe(MathLine, 2);
93
- numberlink.addLe(MathLine, 0);}
94
-
95
- }
96
- }
97
-
98
-
99
- IloLinearNumExpr IfsEq1_1 = numberlink.linearNumExpr();
100
- IloLinearNumExpr IfsEq1_2 = numberlink.linearNumExpr();
101
- for(int i=1;i<=row-1;i++) {
102
- for(int j=1;j<=column;j++) {
103
- IfsEq1_1.addTerm(3,s[i][j]);
104
- IfsEq1_1.addTerm(-1,x[i][j]);
105
- IfsEq1_1.addTerm(1,x[i+1][j]);
106
- numberlink.addLe(IfsEq1_1,3);
107
-
108
- IfsEq1_2.addTerm(3,s[i][j]);
109
- IfsEq1_2.addTerm(1,x[i][j]);
110
- IfsEq1_2.addTerm(-1,x[i+1][j]);
111
- numberlink.addLe(IfsEq1_1,3);
112
- }
113
- }
114
-
115
-
116
- IloLinearNumExpr IfeEq1_1 = numberlink.linearNumExpr();
117
- IloLinearNumExpr IfeEq1_2 = numberlink.linearNumExpr();
118
- for(int i=1;i<=row;i++) {
119
- for(int j=1;j<=column-1;j++) {
120
- IfeEq1_1.addTerm(3,e[i][j]);
121
- IfeEq1_1.addTerm(-1,x[i][j]);
122
- IfeEq1_1.addTerm(1,x[i+1][j]);
123
- numberlink.addLe(IfeEq1_1,3);
124
-
125
- IfeEq1_2.addTerm(3,e[i][j]);
126
- IfeEq1_2.addTerm(1,x[i][j]);
127
- IfeEq1_2.addTerm(-1,x[i+1][j]);
128
- numberlink.addLe(IfeEq1_1,3);
129
- }
130
- }
131
-
132
-
133
- IloLinearNumExpr AllLine = numberlink.linearNumExpr();
134
- for(int i=1;i<=row;i++) {
135
- for(int j=1;j<=column-1;j++) {
136
- AllLine.addTerm(1,e[i][j]);
137
- }
138
- }
139
- for(int i=1;i<=row-1;i++) {
140
- for(int j=1;j<=column;j++) {
141
- AllLine.addTerm(1,s[i][j]);
142
- }
143
- }
144
- numberlink.addMinimize(AllLine);
145
-
146
-
147
-
148
- if(numberlink.solve()) {
149
- System.out.println("目的関数値は"+numberlink.getObjValue());
150
- for(int i=1;i<=row;i++) {
151
- for(int j=1;j<=column;j++) {
152
- System.out.println(s[i][j]+"="+numberlink.getValue(s[i][j]));
153
- System.out.println(e[i][j]+"="+numberlink.getValue(e[i][j]));
154
- System.out.println(x[i][j]+"="+numberlink.getValue(x[i][j]));
155
- }
156
- }
157
-
158
- }
159
-
160
- }
161
- catch(IloException e) {
162
- }
163
- }
164
- }
165
-
166
- ```
167
- 上のコードをEclipseで実行したところ、
168
-
169
3
  Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
170
4
  at testtt.test2.main(test2.java:19)
171
5