В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
livadin3105
livadin3105
27.12.2021 10:35 •  Информатика

1. Дана матрица размером 3х2. Найти произведение элементов матрицы. ( ) 2. Дана матрица размером 4х4. Найти среднее значение элементов массива. Найти номер элемента массива совпадающего со средним. ( )

3. Дана матрица размером 3х5.Найти количество элементов матрицы больших 0, меньших 0 и равных 0. ( )

Показать ответ
Ответ:
Windsorcastle
Windsorcastle
25.07.2021 12:57
Uses crt;

const
    n = 5;
    m = 10; {кол-во столбцов}
    l = 10; {максимальная длина одной строки/слова}
    {letters = '';}
    file_path = 'data.txt';

type
    SmallString = string[l];
    WordsMas = array[1..n, 1..m] of SmallString;

var
    words: WordsMas;
    i, j, k: integer;

function RandomWord(n: integer): SmallString;
var
    i: integer;
    s: SmallString;
    letters: string;
begin
    letters := '';
    s := '';
    for i := 1 to n do 
        s := s + letters[Random(length(letters) - 1) + 1];
    RandomWord := s;
end;

function Replace(s, find_text, replace_text: SmallString): SmallString;
var
    i: integer;
begin
    repeat
        i := pos(find_text, s);
        if i <> 0 then begin
            delete(s, i, length(find_text));
            insert(replace_text, s, i);
        end;
    until i = 0;
    
    Replace := s;
end;

function Invert(s: SmallString): SmallString;
var
    i: integer;
    t: SmallString;
begin
    t := '';
    for i := 1 to length(s) do
        t := s[i] + t;
    
    Invert := t;
end;

function SwapCase(s: SmallString): SmallString;
var
    i: integer;
begin
    for i := 1 to length(s) do
        if s[i] = upcase(s[i]) then
            s[i] := chr(ord(s[i]) + 32)
        else s[i] := upcase(s[i]);
    
    SwapCase := s;
end;

procedure PrintMas(mas: WordsMas; name: string);
var
    i, j: integer;
    f: text;
begin
    writeln(name);
    for i := 1 to n do
    begin
        
        write(i, ': ');
        for j := 1 to m do
            write(mas[i, j]:l, '; ');
        writeln;
    end;
    
    Assign(f, file_path);
    Append(f);
    
    writeln(f, name);
    for i := 1 to n do
    begin
        
        write(f, i, ': ');
        for j := 1 to m do
            write(f, mas[i, j]:l, '; ');
        writeln(f);
    end;
    
    Close(f);
end;

begin
    Randomize;
    ClrScr;
    
    for i := 1 to n do
        for j := 1 to m do
            words[i, j] := RandomWord(Random(l - 5) + 5);
            {words[i, j] := 'GoodXXMMNN';}
    
    PrintMas(words, 'Original');
    
    for i := 1 to n do
        for j := 1 to m do
            case i of
                1: words[i, j] := Replace(words[i, j], 'N', 'X');
                2: words[i, j] := Replace(words[i, j], 'X', 'M');
                3: words[i, j] := Invert(words[i, j]);
                4: words[i, j] := SwapCase(words[i, j]);
            end;
    
    PrintMas(words, 'New One');
    
    Readln;
end.

Проверялось. Работает на Турбо паскале
0,0(0 оценок)
Ответ:
lolkek12398
lolkek12398
08.09.2020 12:42

Первое уравнение системы – это несколько условий, соединённых конъюнкциями. Чтобы такая последовательность условий была истинной, каждое условие должно быть истинным. Заметим, что если какой-то икс оказался равен 1, то все последующие иксы тоже должны быть равны нулю, так как 1 -> 0 = 0.


Остальные уравнения имеют одинаковый вид (a ∨ b ∨ ~c) ∧ (a ∨ ~b ∨ c) ∧ (~a ∨ b ∨ c) = 1. Вновь каждая скобка должна быть истинной. Прикинем, когда так будет.

Пусть a = 1. При этом первые две скобки автоматически истинны, а третья превращается в b ∨ c, что будет истинно, если хотя бы одна из переменных b, c истинна. В этом случае есть 3 комбинации (b, c), при которых уравнение выполняется (все, кроме 0, 0).

Если a = 0, то истинна третья скобка, первые две превращаются в (b ∨ ~c) ∧ (~b ∨ c). В таком выражении можно разглядеть (c -> b) ∧ (b -> c), т.е. эквиваленцию b ↔ c. Она верна, только если операнды одинаковы, тогда есть две комбинации (b, c), при которых уравнение выполняется: (0, 0) и (1, 1).


Собираем вместе: решение первого уравнения – первые k иксов равны 0, оставшиеся 7 - k иксов равны 1. Все оставшиеся уравнения зависимы только через иксы, если соответствующий икс равен 0, то такое уравнение имеет 2 решения, иначе 3 решения. По правилу произведения система при фиксированном k имеет 2^k * 3^(7 - k) = 3^7 * (2/3)^k решений.


Чтобы найти общее количество решений, нужно просуммировать при k от 0 до 7. В этом сумма геометрической прогрессии:

3^7 * ((2/3)^0 + (2/3)^1 + ... + (2/3)^7) = 3^7 * (1 - (2/3)^8)/(1 - 2/3) = 3^8 - 2^8 = 6305.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота