— Нейронная сеть выдает значения с 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

Каждое число, как и вся последовательность тоже стоит рассматривать как многомерный массив.

На Главную