67 / 1 / 0
Регистрация: 07.11.2019
Сообщений: 56
|
||||||
1 | ||||||
Решить систему уравнений с побитовыми операциями03.03.2020, 15:42. Показов 3770. Ответов 22
Метки нет (Все метки)
0
|
03.03.2020, 15:42 | |
Ответы с готовыми решениями:
22
Работа с побитовыми операциями Помогите разобраться с побитовыми операциями Задание, связанное с побитовыми операциями Массивы. Работа с побитовыми операциями |
2565 / 1277 / 468
Регистрация: 08.11.2016
Сообщений: 3,525
|
|
03.03.2020, 16:35 | 3 |
x = b1 & a11 y = b1 & !a11 & a12
0
|
67 / 1 / 0
Регистрация: 07.11.2019
Сообщений: 56
|
|
03.03.2020, 17:45 [ТС] | 5 |
Annemesski,а что означает ! и как мне получить данное представление?
0
|
67 / 1 / 0
Регистрация: 07.11.2019
Сообщений: 56
|
|
11.03.2020, 18:30 [ТС] | 7 |
Помогите пожалуйста составить уравнение которое находит x и y.Нам известны a11, a12, a21, a22, b1, b2.Просто уравнением код не нужен.Заранее благодарю.
(a11 & x) ^ (a12 & y) = b1 (a21 & x) ^ (a22 & y) = b2
0
|
Модератор
|
|
11.03.2020, 19:57 | 8 |
Это же не алгебра.
Беглый поиск по фразе "решение булевых уравнений" приводит к массе любопытных методичек, в том числе и для ЕГЭ. Как понимаю, никто из нас ЕГЭ не сдавал, поэтому булевы уравнения решать не можем. Из прочтения сделал вывод, что при произвольных значениях a11,a12,a21,a22,b1,b2 система уравнений решается перебором. Если эти значения известны заранее, то система уравнений принимает некоторый определённый вид, который можно решать аналитически. Это моё личное мнение.
0
|
Модератор
|
|
11.03.2020, 20:11 | 10 |
А есть серьёзная разница?
Пусть весь набор (a11,a12,a21,a22,b1,b2), а так же искомые (x, y) это числа по 32 разряда каждое. Тогда получаем для каждого номера бита по одной системе уравнений. И для каждой системы отсутствие или несколько решений. Решая каждую из систем для определённого бита - получаем ответ.
0
|
Модератор
|
|
11.03.2020, 20:28 | 11 |
Для булевых уравнений и систем уравнений нет простых способов решения, приводящих к аналитическому решению.
Лично моё мнение, что эта система решается перебором четырёх вариантов значений x и y. При этом, для какого-то конкретного набора параметров (a11,a12,a21,a22,b1,b2) решений может не быть совсем, а может быть до 4 решений (по числу комбинаций x и y). Возможная оптимизация - сохранение решения для конкретного уже рассмотренного набора (a11,a12,a21,a22,b1,b2) и его повторное использование. Мне лень, но лично вы можете найти аналитические решения для всех 64 комбинаций бит (a11,a12,a21,a22,b1,b2). А можете их просто перебрать в цикле.
0
|
693 / 303 / 99
Регистрация: 04.07.2014
Сообщений: 846
|
|
11.03.2020, 21:47 | 12 |
Сообщение было отмечено politoto как решение
Решение
Увы. для 64 вариантов систем уравнений имеем:
нет решений: 25 раз одно решение: 19 раз два разных решения: 16 раз три разных решения: 3 раза верно при любых x и y: 1 раз Так что пишем на Ассемблере перебор Добавлено через 2 минуты (1 & x) ^ (1 & y) = 1 (1 & x) ^ (1 & y) = 1 (x, y) == (1, 0), (0, 1), (1, 1),
2
|
67 / 1 / 0
Регистрация: 07.11.2019
Сообщений: 56
|
|
11.03.2020, 22:03 [ТС] | 13 |
ФедосеевПавел Программа должна вывести два беззнаковых числа чила x и y, удовлетворяющих данной системе. Гарантируется, что такие числа всегда найдутся. Если у системы уравнений несколько решений - выводите любое.
При решении задачи запрещается использовать инструкции условной передачи данных и управления. При данном условию есть ли какое то уравнение с помощью которого можно найти x и y при любых значениях остальных переменных?Писать буду на SASM.Я просто слаб в битовых операциях.Просто нужно выразить х как y затем подставить его во второе уравнение.Но вот как незнаю.
0
|
Модератор
|
|
11.03.2020, 22:59 | 14 |
CodeKing, это лабораторка, вся математика к ней - в методичке или лекциях. А так же - в интернете по запросу "решение булевых уравнений".
Аналитического решения для них всё равно - нет. Иначе бы шифры взламывались очень легко. Т.е. формул x=f1(a11,a12,a21,a22,b1,b2), y=f2(a11,a12,a21,a22,b1,b2) - не существует. Могу посоветовать табличный метод. Разных битовых комбинаций параметров (a11,a12,a21,a22,b1,b2) всего 64. Значит для каждой комбинации можно просчитать значения x и y, занести их в массивы на 64 элемента. По очередной комбинации (a11,a12,a21,a22,b1,b2) из двух массивов извлекать x и y. Вот и нет условных переходов и присвоений. Как вы будете распознавать отсутствие решения без условных переходов - не понятно. Без шуток - что по поводу решения думают сокурсники и преподаватель? Какие варианты?
0
|
693 / 303 / 99
Регистрация: 04.07.2014
Сообщений: 846
|
||||||
11.03.2020, 23:47 | 15 | |||||
ФедосеевПавел, Для его задачи существует.
Строим таблицу истинности:
0
|
Модератор
|
|
12.03.2020, 00:03 | 16 |
Да - таблица в виде двух массивов x и y. А индекс - составляется из битов (a11,a12,a21,a22,b1,b2).
0
|
693 / 303 / 99
Регистрация: 04.07.2014
Сообщений: 846
|
||||||
12.03.2020, 01:59 | 17 | |||||
УПС
Закралась в моей программе не простительная ошибка, так что все предыдущие формулы и таблицы были с ошибочкой.
0
|
4174 / 1824 / 218
Регистрация: 06.10.2010
Сообщений: 4,111
|
||||||
12.03.2020, 06:19 | 18 | |||||
Добавлено через 38 минут У меня сошлось только при a11,a12,a21,a22,b1,b2=0. Может где-то накосячил? Кликните здесь для просмотра всего текста
0
|
Заблокирован
|
||||||
12.03.2020, 06:21 | 19 | |||||
если перебирать в пределах самого "длинного" в битах числа
0
|
4174 / 1824 / 218
Регистрация: 06.10.2010
Сообщений: 4,111
|
|
12.03.2020, 07:31 | 20 |
Да с кодом я тупанул.
Добавлено через 6 минут Verevkin z&x=y x=y&!z+1 Подставим произвольные значения x=0, y=0, z=1 1&0=0 - верно 0=0&!1+1=0&0+1=1 - не верно Добавлено через 23 минуты Мне кажется,что операции & и + в отличие от ^ и ! необратимы. Следовательно решение возможно только перебором. То есть операция x&0 необратимо уничтожит информацию, содержащуюся в x. А вот ^ можно обратить (X^Y)^Y=X.
0
|
12.03.2020, 07:31 | |
12.03.2020, 07:31 | |
Помогаю со студенческими работами здесь
20
Побитовыми операциями вычесть два числа Побитовыми операциями поменять местами в числе по 2 бита Решить систему уравнений решить систему из 4-х уравнений Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |