— Нейронная сеть выдает значения с 95%-ой точностью
— Значит она работает не правильно?*
Теория
В бункер на острове пришел странный код и запрос на ответный код. Однако люди в бункере не смогли отправить код, на что им прислали гневное сообщение и еще один код. Данный код должны были прислать люди в прошлый раз, теперь в запросе хотят другой код, но уже для только что присланного.
Спустя какое-то время (и несколько гневных сообщений) люди поняли, что чисел в коде всегда 9 штук и каждое число в коде может иметь значение от 0 до 511, а также числа как-то влияют друг на друга. Помогите решить проблему и напишите код, который позволяет определить следующий код.
Пример (curr
следует за last
, а next
за curr
):
last: 450 / 97 / 439 / 180 / 383 / 128 / 382 / 2 / 220
curr: 224 / 81 / 129 / 180 / 257 / 196 / 333 / 160 / 490
next: 144 / 26 / 35 / 508 / 1 / 244 / 75 / 140 / 106
Задача
На вход программы подается строка с 9-ю числами разделенными символом “/”. Результатом должна быть такая же строка, но уже с новым кодом. Строку можно заменить на массив.
Примеры для тестирования
0 / 0 / 0 / 0 / 0 / 0 / 0 / 0 / 0
0 / 0 / 0 / 0 / 0 / 0 / 0 / 0 / 0
0 / 0 / 0 / 0 / 0 / 0 / 0 / 0 / 0
511 / 511 / 511 / 511 / 511 / 511 / 511 / 511 / 511
256 / 0 / 64 / 0 / 0 / 0 / 4 / 0 / 1
0 / 0 / 0 / 0 / 0 / 0 / 0 / 0 / 0
446 / 312 / 165 / 265 / 398 / 65 / 223 / 155 / 33
256 / 376 / 292 / 344 / 459 / 128 / 5 / 2 / 36
1 / 288 / 274 / 88 / 451 / 0 / 0 / 73 / 0
9 / 358 / 439 / 362 / 468 / 18 / 264 / 114 / 308
64 / 448 / 129 / 39 / 15 / 98 / 128 / 114 / 22
0 / 432 / 0 / 45 / 44 / 176 / 384 / 119 / 22
134 / 212 / 488 / 331 / 68 / 410 / 19 / 158 / 246
63 / 182 / 360 / 323 / 260 / 460 / 147 / 134 / 66
224 / 128 / 5 / 259 / 132 / 234 / 435 / 276 / 0
3 / 190 / 394 / 343 / 338 / 84 / 454 / 8 / 288
2 / 384 / 399 / 256 / 80 / 502 / 328 / 264 / 416
0 / 9 / 136 / 0 / 4 / 1 / 216 / 296 / 48
255 / 437 / 150 / 299 / 26 / 130 / 243 / 122 / 110
256 / 129 / 27 / 300 / 26 / 164 / 39 / 2 / 78
0 / 0 / 56 / 162 / 182 / 246 / 38 / 0 / 138
259 / 442 / 311 / 197 / 291 / 251 / 452 / 147 / 303
18 / 256 / 392 / 133 / 202 / 1 / 352 / 146 / 333
15 / 0 / 144 / 16 / 234 / 2 / 272 / 145 / 74
164 / 170 / 500 / 337 / 261 / 70 / 196 / 144 / 479
53 / 162 / 76 / 336 / 279 / 49 / 208 / 160 / 5
60 / 58 / 16 / 338 / 128 / 438 / 144 / 96 / 0
31 / 308 / 379 / 234 / 34 / 96 / 112 / 242 / 252
36 / 474 / 356 / 34 / 34 / 70 / 344 / 6 / 76
0 / 258 / 390 / 7 / 4 / 18 / 345 / 260 / 80
356 / 190 / 50 / 262 / 264 / 312 / 376 / 110 / 209
175 / 128 / 306 / 54 / 265 / 112 / 34 / 398 / 208
173 / 108 / 439 / 63 / 25 / 113 / 392 / 202 / 248
Дополнительно
Если есть возможность, то можно попробовать решить задачу с помощью нейронной сети и желательно с высокой точностью. Правда в таком случае придется работать со сверточной сетью и автодекодером.
Подсказка 1
Друг на друга влияют не только соседние значения.
0 / 0 / 0 / 0 / 511 / 0 / 0 / 0 / 0
0 / 2 / 0 / 8 / 325 / 32 / 0 / 128 / 0
Иногда значения вовсе не влияют друг на друга, однако это не означает, что данные значения в похожих случаях будут возвращать те же значения.
9 / 2 / 0 / 0 / 0 / 0 / 0 / 0 / 0
0 / 36 / 0 / 0 / 0 / 0 / 0 / 0 / 0
9 / 2 / 1 / 0 / 0 / 0 / 0 / 0 / 0
0 / 36 / 0 / 0 / 0 / 0 / 0 / 0 / 0
9 / 2 / 36 / 0 / 0 / 0 / 0 / 0 / 0
0 / 45 / 0 / 0 / 0 / 0 / 0 / 0 / 0
Подсказка 2
Рассматривайте данный код не как одномерный массив, а как многомерный массив, но записанный в виде списка из девяти элементов.
Подсказка 3
Каждое число, как и вся последовательность тоже стоит рассматривать как многомерный массив.