マルチスレッド版数独自動生成ソフトC++コードを題材とする超初心者のためのVisual Studio C++講義
第8章 ポインタの学習
第13話 第12話コードはn = 4,n = 8,n = 12,・・・n = 4 * kでも成り立つ4の倍数次魔方陣普遍版である!
実行結果
n = 4 のとき

(
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
34 34 34 34
34 34 34 34
34 34
すべて正常
)
n = 8 とき

(
1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64
64 2 3 4 5 6 7 57
9 55 11 12 13 14 50 16
17 18 46 20 21 43 23 24
25 26 27 37 36 30 31 32
33 34 35 29 28 38 39 40
41 42 22 44 45 19 47 48
49 15 51 52 53 54 10 56
8 58 59 60 61 62 63 1
64 2 59 4 5 62 7 57
9 55 11 52 53 14 50 16
41 18 46 20 21 43 23 48
25 34 27 37 36 30 39 32
33 26 35 29 28 38 31 40
17 42 22 44 45 19 47 24
49 15 51 12 13 54 10 56
8 58 3 60 61 6 63 1
64 2 59 5 4 62 7 57
16 55 11 52 53 14 50 9
41 23 46 20 21 43 18 48
25 34 30 37 36 27 39 32
33 26 38 29 28 35 31 40
17 47 22 44 45 19 42 24
56 15 51 12 13 54 10 49
8 58 3 61 60 6 63 1
260 260 260 260 260 260 260 260
260 260 260 260 260 260 260 260
260 260
すべて正常
)
n =20 とき


(
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240
241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260
261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280
281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300
301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320
321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340
341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360
361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380
381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400
400 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 381
21 379 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 362 40
41 42 358 44 45 46 47 48 49 50 51 52 53 54 55 56 57 343 59 60
61 62 63 337 65 66 67 68 69 70 71 72 73 74 75 76 324 78 79 80
81 82 83 84 316 86 87 88 89 90 91 92 93 94 95 305 97 98 99 100
101 102 103 104 105 295 107 108 109 110 111 112 113 114 286 116 117 118 119 120
121 122 123 124 125 126 274 128 129 130 131 132 133 267 135 136 137 138 139 140
141 142 143 144 145 146 147 253 149 150 151 152 248 154 155 156 157 158 159 160
161 162 163 164 165 166 167 168 232 170 171 229 173 174 175 176 177 178 179 180
181 182 183 184 185 186 187 188 189 211 210 192 193 194 195 196 197 198 199 200
201 202 203 204 205 206 207 208 209 191 190 212 213 214 215 216 217 218 219 220
221 222 223 224 225 226 227 228 172 230 231 169 233 234 235 236 237 238 239 240
241 242 243 244 245 246 247 153 249 250 251 252 148 254 255 256 257 258 259 260
261 262 263 264 265 266 134 268 269 270 271 272 273 127 275 276 277 278 279 280
281 282 283 284 285 115 287 288 289 290 291 292 293 294 106 296 297 298 299 300
301 302 303 304 96 306 307 308 309 310 311 312 313 314 315 85 317 318 319 320
321 322 323 77 325 326 327 328 329 330 331 332 333 334 335 336 64 338 339 340
341 342 58 344 345 346 347 348 349 350 351 352 353 354 355 356 357 43 359 360
361 39 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 22 380
20 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 1
400 2 383 4 385 6 387 8 389 10 11 392 13 394 15 396 17 398 19 381
21 379 23 364 25 366 27 368 29 370 371 32 373 34 375 36 377 38 362 40
341 42 358 44 345 46 347 48 349 50 51 352 53 354 55 356 57 343 59 360
61 322 63 337 65 326 67 328 69 330 331 72 333 74 335 76 324 78 339 80
301 82 303 84 316 86 307 88 309 90 91 312 93 314 95 305 97 318 99 320
101 282 103 284 105 295 107 288 109 290 291 112 293 114 286 116 297 118 299 120
261 122 263 124 265 126 274 128 269 130 131 272 133 267 135 276 137 278 139 280
141 242 143 244 145 246 147 253 149 250 251 152 248 154 255 156 257 158 259 160
221 162 223 164 225 166 227 168 232 170 171 229 173 234 175 236 177 238 179 240
181 202 183 204 185 206 187 208 189 211 210 192 213 194 215 196 217 198 219 200
201 182 203 184 205 186 207 188 209 191 190 212 193 214 195 216 197 218 199 220
161 222 163 224 165 226 167 228 172 230 231 169 233 174 235 176 237 178 239 180
241 142 243 144 245 146 247 153 249 150 151 252 148 254 155 256 157 258 159 260
121 262 123 264 125 266 134 268 129 270 271 132 273 127 275 136 277 138 279 140
281 102 283 104 285 115 287 108 289 110 111 292 113 294 106 296 117 298 119 300
81 302 83 304 96 306 87 308 89 310 311 92 313 94 315 85 317 98 319 100
321 62 323 77 325 66 327 68 329 70 71 332 73 334 75 336 64 338 79 340
41 342 58 344 45 346 47 348 49 350 351 52 353 54 355 56 357 43 359 60
361 39 363 24 365 26 367 28 369 30 31 372 33 374 35 376 37 378 22 380
20 382 3 384 5 386 7 388 9 390 391 12 393 14 395 16 397 18 399 1
400 2 383 17 385 15 387 13 389 11 10 392 8 394 6 396 4 398 19 381
40 379 23 364 36 366 34 368 32 370 371 29 373 27 375 25 377 38 362 21
341 59 358 44 345 55 347 53 349 51 50 352 48 354 46 356 57 343 42 360
80 322 78 337 65 326 74 328 72 330 331 69 333 67 335 76 324 63 339 61
301 99 303 97 316 86 307 93 309 91 90 312 88 314 95 305 84 318 82 320
120 282 118 284 116 295 107 288 112 290 291 109 293 114 286 105 297 103 299 101
261 139 263 137 265 135 274 128 269 131 130 272 133 267 126 276 124 278 122 280
160 242 158 244 156 246 154 253 149 250 251 152 248 147 255 145 257 143 259 141
221 179 223 177 225 175 227 173 232 170 171 229 168 234 166 236 164 238 162 240
181 202 198 204 196 206 194 208 192 211 210 189 213 187 215 185 217 183 219 200
201 182 218 184 216 186 214 188 212 191 190 209 193 207 195 205 197 203 199 220
161 239 163 237 165 235 167 233 172 230 231 169 228 174 226 176 224 178 222 180
260 142 258 144 256 146 254 153 249 150 151 252 148 247 155 245 157 243 159 241
121 279 123 277 125 275 134 268 129 271 270 132 273 127 266 136 264 138 262 140
300 102 298 104 296 115 287 108 292 110 111 289 113 294 106 285 117 283 119 281
81 319 83 317 96 306 87 313 89 311 310 92 308 94 315 85 304 98 302 100
340 62 338 77 325 66 334 68 332 70 71 329 73 327 75 336 64 323 79 321
41 359 58 344 45 355 47 353 49 351 350 52 348 54 346 56 357 43 342 60
380 39 363 24 376 26 374 28 372 30 31 369 33 367 35 365 37 378 22 361
20 382 3 397 5 395 7 393 9 391 390 12 388 14 386 16 384 18 399 1
4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 4010
4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 4010 4010
4010 4010
すべて正常
)
そうなんです。
猫を散歩させているときに、
n = 4 や n = 8 などでも成り立つことに気が付きました。
つまり、4の倍数次普遍版なのです。
皆さんも4の倍数を入力していろいろ実験してください。
第14話では4,10,14,・・・の普遍版に挑戦します。
つまり、偶数次普遍版が完成するです。
是非、読者の皆さん考えてください。
ただし、2次魔方陣は存在しないことは、
中学数学で証明できますので4以上の偶数次魔方陣普遍版です。
尚、n > 28 なるとコンソール画面を最大化しないと成形が崩れます。
最大化しても n > 40 なると成形は崩れますが、つなげれば魔方陣にはなっています。
ですから、実際上は n <= 40 という前提で実験してください。
4 * n + 2 版も実際上は n <= 42 という前提で実験してください。