Профиль пользователя заблокирован сроком с 20 сентября 2021 г. и навсегда по причине: систематические нарушения правил сервиса
Ответы пользователя по тегу Информатика
  • Где ошибка при выполнении операции округления в 2й системе счисления?

    longclaps
    @longclaps
    a*b == 0.1001011 * 16  - мантиса 7 знаков == 9.375
    округляем вниз 
           0.100101  * 16                     == 9.25
    округляем вверх 
           0.100110  * 16                     == 9.5
    Ответ написан
    Комментировать
  • Принцип работы 4x3 bit memory?

    longclaps
    @longclaps
    Каким значениям равны Di[2], Di[1], Di[0]? (в тексте об этом не говорится)

    Видишь ли, в память можно записать любые значения (она же - память!). А что в тексте об этом утаили - это не по злому умыслу, просто они не предполагали, что ты это прочтёшь.
    А выводятся эти самые запомненные значения. Которые записывались по спаду WE в ячейки по адресу 11 (на рисунке - нижние). А что там сейчас на Di[2], Di[1], Di[0] - это уже неважно, ибо WE на нуле.
    Ответ написан
  • Где найти задачи по упрощению логических выражений?

    longclaps
    @longclaps
    Скилы по упрощению логических выражений пусть лучше лошадь развивает, у неё голова большая )))
    Но раз уж тебе так приспичило - вот тренажер:

    from random import choice
    
    def scheme(n, m):
        """
        :param n: число входных аргументов, не более 26 (a..z)
        :param m: число логических операций, фигачь сколько влезет
        :return: строка с логическим выражением для упрощения
        """
        l, s = list('abcdefghijklmnopqrstuvwxyz'[:n]), ''
        while s.count('(') < m:
            op = choice(('not', 'and', 'or', '^'))
            s = f'(not {choice(l)})' if op == 'not' else f'({choice(l)} {op} {choice(l)})'
            l.append(s)
        return s
    
    print(scheme(5, 10))

    Вот проверялка, никакой обработки ошибок, всё по хардкору - извини:

    import re
    from itertools import product
    
    def check(task, solution):
        """
        :param task: строка задачи
        :param solution: строка решения
        :return: эквивалентны ли они (bool)
        """
        args = sorted(set(re.findall(r'\b[a-z]\b', task)))
        chk = compile(f'({task})==({solution})', '<string>', 'eval')
        return all(eval(chk, {}, dict(zip(args, bulls)))
                   for bulls in product((False, True), repeat=len(args)))
    
    print(check('a and (b or not b)', 'a'))
    print(check('a and (b or not b)', 'a ^ b'))

    Не забудь рассказать об успехах.
    Ответ написан
    2 комментария
  • Не могу решить задание в ЕГЭ. Опечатка?

    longclaps
    @longclaps
    Ты чего-то не понимаешь. Или не умеешь.
    from itertools import product
    
    def f(a, b, c):
        return int(a and not b and not c or a and c)
    
    print("A B C F")
    for abc in product((0, 1), repeat=3):
        print(*abc, f(*abc))

    Смотрим вывод
    A B C F
    0 0 0 0
    0 0 1 0
    0 1 0 0
    0 1 1 0
    1 0 0 1
    1 0 1 1
    1 1 0 0
    1 1 1 1

    в колонке F всего 3 единички, из них в задачу попали 2. Смотрим на строчки с единичками
    A B C F
    1 0 0 1
    1 0 1 1
    1 1 1 1

    на роль колонки №2 вроде подходят A и C - они дают 2 необходимых единички,
    но C отпадает - в соотв. строках нашей таблицы стоят столбики A и B содержат
    1 0
    1 1

    а в задании
    1 0
    0 0

    пробуем подобрать 2 из трех строчек, так что средняя колонка - A, а B и C дадут нужные 3 нуля и единичку
    вот же они:
    A B C F
    1 0 0 1
    1 0 1 1

    надо только переставить колонки и строки
    C A B F
    1 1 0 1
    0 1 0 1

    убедимся, что и первая строчка из задания, та где F == 0, найдется,
    для этого перепишем ее в правильном порядке

    C A B F    ->   A B C F
    0 1 1 0    ->   1 1 0 0

    - есть такая строка, предпоследняя в таблице.

    зы. для тех, которым сложно Akram: я и сам думать не люблю, пусть комп думает )
    ABCF = [(a, b, c, f(a, b, c))
            for a, b, c in product((0, 1), repeat=3)]
    
    data = ((0, 1, 1, 0),
            (1, 1, 0, 1),
            (0, 1, 0, 1))
    
    for x, y, z in permutations((0, 1, 2)):
        crossdata = [(r[x], r[y], r[z], r[3]) for r in ABCF]
        if all(r in crossdata for r in data):
            print("ABC"[x], "ABC"[y], "ABC"[z])
    Ответ написан
    Комментировать
  • Почему метод Фано не срабатывает?

    longclaps
    @longclaps
    Тупо перебираем
    Г : 0  ->  ГГГБ неотличимо от А
    Г : 1  ->  ГГГ неотличимо от Б
    Г :00  ->  ни Г, ни ГГ не дают такого префикса, чтобы он, слившись с любой/любыми
                    последующими буквами, выглядел как код/набор кодов других букв.
    Ответ написан