Форум » Динамическое программирование » №18 задача 22 » Ответить

№18 задача 22

vin: В задаче 22 из задания Полякова ответ 640, полу чается минимум 530 по формуле =ЕСЛИ(И(B2>100;B2<500);МИН(B27;A28);B2+МИН(B27;A28)), а 640 выходит при обратном условии =ЕСЛИ(И(B2>500;B2<100);МИН(A15;B14);B2+МИН(A15;B14))

Ответов - 5

vladimirKazan: Вы бы хоть указали, в какой ячейке формула записана... А записана она странно. Например условие И(B2>500;B2<100) всегда ложно. И почему Вы записываете в ячейку минимум, когда там стена?

vin: я говорю о диагональной ячейке, в том -то и дело, что при ложном условии получается Ваш ответ, а это не верно или я что-то путаю. Ответ должен быть 530?

beep: vin пишет: Ответ должен быть 530? Выпишите Ваш полный путь, сумма которого равна 530. Так проще всего будет понятно, верно ли Ваше решение. Я эту задачу решал, у меня ответ сошелся. UPD: прогнал еще раз, все сходится. По Вашим формулам не понятно, что Вы хотите сделать: в первой формуле Вы почему-то натыкаясь на стену выбираете минимальный вариант из двух путей (сверху и слева), хотя в эту клетку Вы не можете пройти. Во втором варианте у Вас противоречие (число не может быть одновременно и больше 500 и меньше 100), поэтому всегда срабатывает второй вариант (к значению прибавляется минимум из двух возможных путей), который не учитывает возможность стенки на предыдущем шаге. В любом случае формулы выглядят неверными. UPD: также при "обратном условии" нужно пользоваться законом де Морагана, где not(B2>100 and B2<500) == not(B2>100) or not(B2<500) == B2<=100 or B2>=500


vin: 24 37 48 98 175 244 318 328 333 431 468 517 105 122 103 195 231 324 318 364 378 409 437 488 131 219 167 265 290 332 318 392 417 465 449 535 142 225 185 278 342 380 323 420 423 437 495 573 228 306 185 224 228 230 297 308 324 411 492 538 309 323 213 237 246 319 298 308 350 408 447 454 383 366 213 223 280 311 388 345 370 370 396 489 383 422 258 280 317 324 328 337 371 432 483 577 449 442 342 368 351 388 423 382 372 386 437 445 486 456 364 380 360 420 458 420 420 410 452 527 569 540 462 465 360 408 464 475 510 509 459 462 592 604 538 497 425 423 504 532 593 557 520 530 ищу минимум по формуле =ЕСЛИ(И(B2<500;B2>100);МИН(A15;B14);B2+МИН(A15;B14)) жаль нельзя прикрепить файл( или можно?

beep: vin, еще раз, выпишите полный путь Вашего результата. Например, A15 -> A16 -> B16 и тд При b2 < 500 and b2 > 100 == True Вы попадаете в стену, Вы не можете пройти в эту клетку, но Ваша формула выдаст Вам результат (минимум из соседних клеток), что является ошибкой. Вы точно понимаете условия задачи и что делаете? Можете объяснить, зачем Вы выбираете минимум из соседних клеток для стены?



полная версия страницы