— Злость болезненнее, чем отчаяние.
— Что?!
— В моих программах заложены «Основы психологии»
“Terminator 3: Rise of the Machines”
С каждым днем возрастает интерес общества к такой проблеме, как искусственный интеллект, он же разум. Чаще это связано с вопросом, что же ждет нас в будущем. Ошибочно будет предположить, что это касается только лишь ученых, проводящих исследования в данной области. Это касается и нас, обычных людей. Совсем не ученых.
Вы можете спросить, почему. Чтобы ответить на этот вопрос, достаточно просто привести определение искусственного интеллекта, которое дал Джон Маккарти в 1956 году по время дармутской конференции: «искусственный интеллект – это наука и сопутствующие технологии по созданию интеллектуальных машин. А именно – интеллектуальных компьютерных программ»[1].
Если и это не совсем отвечает на ваш вопрос, то давайте посмотрим на наши компьютеры и телефоны. Как просто они нас понимают. Выполняют все наши команды. А иногда, получается и так, что они умнее своих обладателей. И всегда, когда появляются новинки, еще круче, чем у нас, мы всегда стараемся их приобрести. А все почему? Потому что их создатели позаботились об огромном количестве интеллектуальных компьютерных программ внутри них.
А если же и это вас не убедило, то вот вам последний аргумент: фильмы. Но, для начала, стоит отметить, что, как и любая наука, искусственный интеллект связан с другими науками, например, с биологией, кибернетикой и робототехникой. Уже понимаете, к чему это все ведется? Правильно. Ко всем частям киносаги «Терминатор» (1984, 1991, 2003, 2009), к «Робокопу» (1987), «Искусственному разуму» (2001), «Восстание машин» (2011).
// PascalABC.Net 3.0, сборка 1066
const
nn=50;
mm=50;
var
a:array[1..mm,1..nn] of integer;
i,j,m,n,k:integer;
begin
Write('Введите число строк и столбцов массива: '); Read(m,n);
Write('Введите значение, заменяемое нулем: '); Read(k);
Randomize;
Writeln('*** Исходный массив ***');
for i:=1 to m do begin
for j:=1 to n do begin
a[i,j]:=Random(51)-25;
Write(a[i,j]:4)
end;
Writeln
end;
Writeln('*** Результирующий массив ***');
for i:=1 to m do begin
for j:=1 to n do begin
if i+j=k then a[i,j]:=0;
Write(a[i,j]:4)
end;
Writeln
end
end.
Тестовое решение:
Введите число строк и столбцов массива: 10 8
Введите значение, заменяемое нулем: 11
*** Исходный массив ***
-23 8 2 -4 6 17 -11 -20
-15 -18 -8 15 1 3 -12 -4
-14 9 3 -2 20 -13 21 -23
-20 24 -13 18 -6 -16 -19 -23
-24 -25 -16 1 0 18 -7 -8
-7 22 19 -6 -25 -6 -23 17
9 -23 -7 18 5 -9 11 16
12 0 -9 8 4 -4 12 -24
-24 -10 13 1 -7 13 21 -6
-9 -14 -21 24 -6 2 -24 11
*** Результирующий массив ***
-23 8 2 -4 6 17 -11 -20
-15 -18 -8 15 1 3 -12 -4
-14 9 3 -2 20 -13 21 0
-20 24 -13 18 -6 -16 0 -23
-24 -25 -16 1 0 0 -7 -8
-7 22 19 -6 0 -6 -23 17
9 -23 -7 0 5 -9 11 16
12 0 0 8 4 -4 12 -24
-24 0 13 1 -7 13 21 -6
0 -14 -21 24 -6 2 -24 11