Const
N = 13;
Var
A:array[1..N] of integer;
i,j,k:integer;
Begin
Randomize;
WriteLn('Исходный массив:');
For i:= 1 to N do
Begin
A[i]:=random(21)-10;
Write(A[i]:4)
End;
WriteLn;
Write('Перестановки:');
k:=N;
i:=1;
Repeat
if A[i]<0 then
Begin
While A[k]<0 do
k:=k-1;
if k>i then
Begin
Swap(A[i],A[k]);
k:=k-1;
WriteLn;
For j:= 1 to N do
Write(A[j]:4)
End
End;
i:=i+1
Until i>=k;
i:=1;
Repeat
if A[i]=0 then
Begin
While A[k]<=0 do
k:=k-1;
if k>i then
Begin
Swap(A[i],A[k]);
k:=k-1;
WriteLn;
For j:= 1 to N do
Write(A[j]:4)
End
End;
i:=i+1
Until i>k;
End.
Const
N = 2;
Var
A:array[1..N,1..N] of integer;
i,j,m,iMin,jMin,iMin2,jMin2:integer;
Begin
Randomize;
WriteLn('Исходная матрица:');
For i:= 1 to N do
Begin
For j:= 1 to N do
Begin
A[i,j]:=random(21)-10;
Write(A[i,j]:3,' ')
End;
WriteLn;
End;
iMin:=1;
jMin:=1;
For i:= 1 to N do
For j:= 1 to N do
if A[iMin,jMin]>A[i,j] then
Begin
iMin:=i;
jMin:=j;
End;
Swap(A[N,1],A[iMin,jMin]);
For m:= 1 to N-1 do
Begin
iMin2:=1;
jMin2:=1;
For i:= 1 to N do
For j:= 1 to N do
if (A[i,j]<=A[iMin2,jMin2])and(A[i,j]>=A[N-m+1,m])and((i<>N-m+1)or(j<>m)) then
Begin
iMin2:=i;
jMin2:=j;
End;
Swap(A[N-m,m+1],A[iMin2,jMin2]);
End;
WriteLn;
WriteLn('Результирующая матрица:');
For i:= 1 to N do
Begin
For j:= 1 to N do
Write(A[i,j]:3,' ');
WriteLn;
End;
End.
Python 3.6.1:
from random import random
N = 100
a = []
for i in range(N):
a.append(int(random()*2))
print(a[i],end=' ')
print()
for i in range(N):
if (a[i] == 0):
a[i] = 1
else:
a[i] = 0
print(a[i],end=' ')
from random import random
N = 20
a = []
for i in range(N):
a.append(int(random()*(2*N+1)-N))
print(a[i],end=' ')
Max = max(a)
Min = min(a)
print('\nMax =',Max)
print('Min =',Min)
print('Max - Min =',Max-Min)
1. ¬(A*B+¬C)
По закону де Моргана раскрываем скобки:
(¬А + ¬B) * C
В принципе уже упрощена, но по закону дистрибутивности еще можно записать как
¬А * С + ¬B * C
2. (x+z)*(x+¬z)*¬y
По закону склеивания выражение (x+z)*(x+¬z) = x
То есть все выражение будет иметь вид x*¬y