int RowWithMax(double m[n][n], int j)
{
double max_el = m[j][j];
int max_i = j;
for (int i = j; i < n; i++)
{
if (abs(m[i][j]) > abs(max_el))
{
max_el = m[i][j];
max_i = i;
}
}
return max_i;
}
void RowChange(double m[n][n], double f[n], int i1, int i2)
{
for (int j = 0; j < n; j++)
{
/*m[i1][j] = m[i1][j] + m[i2][j];
m[i2][j] = m[i1][j] - m[i2][j];
m[i1][j] = m[i1][j] - m[i2][j];*/
swap(m[i1][j], m[i2][j]);
}
swap(f[i1], f[i2]);
}
double StraightRun(double m[n][n], double f[n], int i) //прямой метод
{
double el;
double det = 1;
int reverse = 0;
int max_i = RowWithMax(m, i);
if (i != max_i)
{
RowChange(m, f, i, max_i);
//reverse++;
det *= (-1);
}
el = m[i][i];
det *= el;
f[i] /= el;
for (int i1 = n - 1; i1 >= i; i1--)
{
m[i][i1] /= el;
}
for (int i2 = i + 1; i2 < n; i2++)
{
el = m[i2][i];
f[i2] -= f[i] * el;
for (int j = n - 1; j >= i; j--)
{
m[i2][j] -= el * m[i][j];
}
}
return det/**pow(-1, reverse)*/;
}
ответ: [35;40]
Объяснение:
Логическое ИЛИ истинно, если истинно хотя бы одно утверждение.
Введем обозначения:
(x ∈А) ≡ A; (x ∈ P) ≡ P; (x ∈ Q) ≡ Q; (x ∈ R) ≡ R.
Применив преобразование импликации, получаем:
¬P∨Q∨¬A∨R
¬P∨Q∨R истинно тогда, когда x∈(– ∞,15);(25,∞). Выражение ¬A должно быть истинно на интервале [15;25]. Поскольку все выражение должно быть истинно для ЛЮБОГО x, следовательно, выражение A должно быть истинно на промежутке, не включающем отрезок [15;25].
Из всех отрезков только отрезок [35;40] удовлетворяет этому условию.
Поделитесь своими знаниями, ответьте на вопрос:
Дан одномерный массив. удалить из массива все числа фибоначчи. язык c++ или паскаль
const
nn=100;
var
a:array[1..nn] of integer;
i,n,k,max,f2,f1,fib:integer;
begin
Write('Введите количество элементов в массиве (1-100): ');
Read(n);
Randomize;
Writeln('*** Сформированный массив ***');
max:=0;
for i:=1 to n do begin
a[i]:=Random(100)+1;
Write(a[i],' ');
if max<a[i] then max:=a[i]
end;
Writeln;
// Заменяем элементы, равные числам Фибоначчи, на -1
k:=0;
f1:=1; fib:=1;
while fib<=max do begin
for i:=1 to n do
if a[i]=fib then begin a[i]:=-1; Inc(k) end;
f2:=f1; f1:=fib; fib:=f1+f2
end;
if k>0 then begin
// Удаляем элементы, равные -1
Writeln('*** Результирующий массив ***');
for i:=n downto 1 do begin
if a[i]=-1 then begin
if i<>n then
for k:=i to n-1 do a[k]:=a[k+1];
Dec(n);
end;
end;
for i:=1 to n do Write(a[i],' ');
Writeln
end
else Writeln('Числа Фибоначчи не обнаружены')
end.
Тестовое решение:
Введите количество элементов в массиве (1-100): 20
*** Сформированный массив ***
21 51 15 38 52 35 42 51 16 53 96 3 53 82 87 12 55 37 93 19
*** Результирующий массив ***
51 15 38 52 35 42 51 16 53 96 53 82 87 12 37 93 19