Есть квадрат 10х10 (Это всё в Exel, но я хочу сделать на python) , в каждой ячейке есть определённое число (я записал эту таблицу в python в виде двумерного массива). Надо придумать такую функцию/цикл на python, чтобы перебрать все возможные варианты перемещений с верхней левой ячейки, в нижнюю правую с подсчётом всех чисел встречающихся на пути(тоесть сумму всех чисел которую мы соберём по определённому пути). Надо найти путь с наименьшей и наибольшей суммой этих чисел.
Давай попробуем рассуждать логически. Если бы сад состоял из двух деревьев, то было бы два варианта садов: 100+99 и 100+101. Если бы досадили третье дерево, то каждый из предыдущих садов удвоил бы число вариантов: первый 100+99+98 и 100+99+100, и так же второй 100+101+100 и 100+101+102. Подмечаем закономерность: каждое добавляемое дерево удваивает количество вариантов. А сад из одного дерева имеет лишь один вариант.
Const n=10; type ar=array[1..n] of integer; procedure p1(var x:ar); var i:integer; begin for i:=1 to n do x[i]:=random(51); end;
procedure p2(h:char;var x:ar); var i:integer; begin writeln('---',h,'---'); for i:=1 to n do write(x[i]:4); writeln; end;
procedure p3(var x:ar; var min,imin:integer); var i:integer; begin min:=x[1]; imin:=1; for i:=2 to n do if x[i]<min then begin min:=x[i]; imin:=i; end; end;
var a,b : ar; m1,m2,im1,im2: integer; begin Randomize; p1(a); p2('a',a); p3(a,m1,im1); writeln('m1=',m1,' im1=',im1); p1(b); p2('b',b); p3(b,m2,im2); writeln('m2=',m2,' im2=',im2); if im2<n then begin b[im2+1]:=m1; p2('b',b); end else writeln('Минимальный элемент последний'); end.