Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для Yntra
2 / 2 / 0
Регистрация: 22.04.2018
Сообщений: 18

Найти a^n или xor вычисляется так

07.05.2018, 22:06. Показов 1293. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Недавно я задумалась , как написать код для вычисления логической операции "исключающее ИЛИ", или XOR.
Пусть есть два натуральных числа a и n - вычислить значение a ^ n ?
По моему скромному мнению - получился вот такой вариант
Python
1
2
3
4
5
6
7
8
a = int(input())
n = int(input()) 
def pover2(a): # разложение числа n на максимальные числа в степени двойки
    return [2**p for p,v in enumerate(bin(a)[:1:-1]) if int(v)]
def pover2(n): # разложение числа n на максимальные числа в степени двойки
    return [2**p for p,v in enumerate(bin(n)[:1:-1]) if int(v)]
print(sum(list(set(pover2(a))-set(pover2(n))) + list(set(pover2(n))-set(pover2(a))))) # xor вычисляется так :)
print(a^n) # проверка
Как вы считаете это программа рациональная ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.05.2018, 22:06
Ответы с готовыми решениями:

Исключающее ИЛИ (XOR). Нужен пример операции побайтного XOR
Может кто-нибудь привести пример операции побайтного XOR?что-то вроде: есть данные,считанные из файла любого формата,эти данные по...

Тангенс вычисляется как-то так
deg := (PI / 4);//(45 div sl); deg := (deg / sl); for s:=1 to 1 do begin //sl+1 CaTanDegP:=0; TanDeg...

Агрегация XOR или LACP в SAN, iscsi intel или windows?
Добрый день. Вот три вопроса у меня. Перестраиваем сетевую инфраструктуру, которую делал кто-то под веществами (SAN и все сервера в одной...

6
 Аватар для FilArt97
37 / 36 / 16
Регистрация: 11.03.2018
Сообщений: 95
08.05.2018, 00:01
Вот, что такое xor:
Python
1
2
3
4
5
6
7
8
9
10
def xor(A, B):
    # y = A * not(B) + not(A) * B
    y = (A and not B) or (not A and B)
    return y
 
 
print(xor(False, False))  # 0
print(xor(False, True))  # 1
print(xor(True, False))  # 1
print(xor(True, True))  # 0
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
08.05.2018, 10:32
Цитата Сообщение от Yntra Посмотреть сообщение
исключающее ИЛИ", или XOR.
Пусть есть два натуральных числа a и n - вычислить значение a ^ n ?
Это разные вещи.
0
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
08.05.2018, 11:48
Цитата Сообщение от FilArt97 Посмотреть сообщение
Вот, что такое xor:
Видимо, имеется в виду побитовая операция, но тем не менее аналогично:
Python
1
2
def xor2(x, y):
      return (x & ~y) | (~x & y)
Yntra, что касается рациональности вашей программы, у меня первый вопрос, вы зачем одну и ту же функцию два раза написали?
0
 Аватар для Yntra
2 / 2 / 0
Регистрация: 22.04.2018
Сообщений: 18
08.05.2018, 19:36  [ТС]
Цитата Сообщение от woldemas Посмотреть сообщение
вы зачем одну и ту же функцию два раза написали?
Я написала две разные функции: первую для разложение числа "а" на максимальные числа в степени двойки, вторую разложение числа "n" на максимальные числа в степени двойки. Объединять вычисления pover2(a) и pover2(n) в одной функции честно говоря я и не планировала
Если уважаемый woldemas подскажите как это сделать - буду вам премного благодарна
Что то внутри мне подсказывало что моя программа не совершенна - поэтому я и обратилась к знатокам за помощью.
0
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
08.05.2018, 19:41
Цитата Сообщение от Yntra Посмотреть сообщение
Я написала две разные функции: первую для разложение числа "а" на максимальные числа в степени двойки, вторую разложение числа "n" на максимальные числа в степени двойки.
Вам для начала нужно вообще ознакомится в литературе или иных источниках с тем, что такое функция, что такое аргументы функции, и как все это дело работает.
1
 Аватар для Yntra
2 / 2 / 0
Регистрация: 22.04.2018
Сообщений: 18
08.05.2018, 21:24  [ТС]
Цитата Сообщение от dondublon Посмотреть сообщение
Это разные вещи.
Для вычисления a^n я использовала следующий алгоритм:
1. Разложить числа a и n на сумму максимальных чисел в степени двойки.
2. Удалить совпадающие элементы в суммах максимальных чисел в степени двойки, чисел a и n.
3. Складываем оставшиеся элементы и по моему скромному мнению получаем исключающее ИЛИ", или XOR, или a^n.

Возможно я что-то путаю, объясните пожалуйста что именно

Добавлено через 1 час 11 минут
woldemas!
Полностью согласна с вами, с функциями я не очень дружу .
Надо же какая балда, масло маслянное сделала . Вот переделка.
Python
1
2
3
4
5
6
a, n = map(int, input().split()) 
def pover2(x): # разложение чисел на максимальные числа в степени двойки
    return [2**p for p,v in enumerate(bin(x)[:1:-1]) if int(v)]
pover2(a), pover2(n)
print(sum(list(set(pover2(a))-set(pover2(n))) + list(set(pover2(n))-set(pover2(a))))) # xor вычисляется так :)
print(a^n) # проверка
А функции, аргументы и как все это дело работает обязательно изучу .
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.05.2018, 21:24
Помогаю со студенческими работами здесь

а так ли нужен этот ваш xor ?
вот , встал вопрос (читаю шилдта , 3 издание) : а так ли нужен этот ваш xor ? шилдт пишет , что в С++ отсутствует функция xor (исключающая...

Нужно узнать конечный результат каждого спортсмена, если он вычисляется так
Добрый вечер! Помогите, пожалуйста, решить задачку на двумерные массивы Выступления n спортсменов оцениваются m судьями по одной и...

Не вычисляется корни квадратного уравнения в Delphi. Даже если а=0,то вычисляется а при целых числ х1 и х2 = 0
program Laba1; {$APPTYPE CONSOLE} uses SysUtils; procedure SolveQE(A,B,C: integer; Var x1,x2:real); var D:real; begin

Что вычисляется быстрее, x*y или min(x,y)?
Что видеокартой вычисляется быстрее, умножение x*y или min(x,y) и max(x,y)? Функции минимума и максимума на аппаратном уровне...

Как зашифровать XOR-ом так чтобы ключ был более 256 символов?
Как зашифровать данные методом XOR так чтобы ключ был более 256 символов? Напишите пожалуйста кодом. Добавлено через 5 минут вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru