import random mas = [] for i in range(25): a = float(random.randint(0,50) ) mas.append(a) print(mas) b = [] for x in mas: if (x <=4.15) and (x >=2.15): b.append(x) print("Числа найбільш ближчі!:\n",b)
Blekjek730
25.12.2020
{неэффективный алгоритм}
const k = 100;
type maze = array [1..k, 1..k] of integer; var l : maze; n, m: integer; i, j: integer; c: char; t: text; w: integer; x0, y0: integer; x1, y1: integer;
procedure ways(a,b,r:integer); begin if (w = 0) or (r < w) then {нет смысла идти дальше, если текущий путь уже превосходит найденный} if (l[a,b] <> -2) then if (r < l[a,b]) or (l[a,b] = -1) then {нет смысла идти, если текущая клетка уже была достигнута за меньшее число шагов} begin l[a,b] := r; if (a = x1) and (b = y1) then w := r else begin if a <> 1 then ways(a - 1, b, r + 1); if b <> 1 then ways(a, b - 1, r + 1); if a <> n then ways(a + 1, b, r + 1); if b <> m then ways(a, b + 1, r + 1); end end; end; begin assign(t, 'input.txt'); reset(t); w := 0; readln(t, n, m); readln(t, x0, y0); readln(t, x1, y1); for i := 1 to n do begin for j := 1 to m do begin read(t, c); case c of '.' : l[i,j] := -1; {будем считать, что если клетка отмечена как -1, то путь к ней еще не найден} 'X' : l[i,j] := -2; {-2, если клетка непроходима} end; end; readln(t) end; close(t); if (l[x0,y0] <> -2) and (l[x1,y1] <> -2) then begin l[x0,y0] := 1; {просто трюк, чтобы пройти проверку на (r < l[x0,y0])} ways(x0, y0, 0); end else l[x1,y1] := -1; writeln(l[x1,y1]) end.
АлександрАлина
25.12.2020
1. Вот так сейчас решают подобные задачи:
// PascalABC.NET 3.1, сборка 1174 от 22.02.2016 begin Writeln(Range(1,100).Select(i->sin(i)*cos(i)).Where(x->x<>0).Average) end.
Тестовое решение: -0.00136006072493969
2. А вот так учат писать это же школьные учителя:
// PascalABC.NET 3.1, сборка 1174 от 22.02.2016 var m:array[1..100] of real; i,k:integer; s:real;
begin s:=0; k:=0; for i:=1 to 100 do begin m[i]:=sin(i)*cos(i); if m[i]<>0 then begin s:=s+m[i]; k:=k+1 end end; Writeln(s/k) end.
Тестовое решение: -0.00136006072493969
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Вмассиве m=(m1, ) найти номер элемента, наименее отличающегося от числа 3, 1416
mas = []
for i in range(25):
a = float(random.randint(0,50) )
mas.append(a)
print(mas)
b = []
for x in mas:
if (x <=4.15) and (x >=2.15):
b.append(x)
print("Числа найбільш ближчі!:\n",b)