약 1 년 전에 XOR 소수 를 찾아야했습니다 . 이들은 밑이 2 인 XOR 곱셈을 수행 할 때 요인이 1 인 숫자입니다 . 이제는 약간의 향신료를 만들려고했습니다.
기본 -2 에서 XOR 소수를 찾을 것입니다.
베이스 -2로 변환
베이스 -2는 다른 모든베이스와 매우 비슷합니다. 가장 왼쪽은 1s 장소 (1 = (-2) 0 )이고, 그 옆에는 -2s 장소 (-2 = (-2) 1 )가 있고 그 옆에는 4s 장소 (4 = (-2)가 있습니다. ) 2 등 ) 등이 있습니다. 큰 차이는 음수는 음수 부호없이 밑수 -2로 표시 될 수 있다는 것입니다.
다음은 몇 가지 변환 예입니다.
Decimal | Base -2
-----------------
6 | 11010
-7 | 1001
12 | 11100
-15 | 110001
Base-2의 XOR 추가
Base -2의 XOR 추가는 바이너리의 XOR 추가와 거의 같습니다. 숫자를 Base -2로 변환하고 각 자리를 XOR로 변환합니다. (이것은 캐리없이 추가와 동일합니다)
다음은 단계별로 작업 한 예입니다.
(기호 +'
를 사용하여 Base -2 XOR 추가를 나타냅니다)
10 진부터 시작하십시오 :
6 +' -19
기본 -2로 변환 :
11010 +' 10111
휴대하지 않고 추가하십시오.
11010
+' 10111
---------
01101
결과를 다시 기본 10으로 변환하십시오.
-3
밑이 -2 인 XOR 곱셈
베이스 -2의 XOR 곱셈은 이진의 XOR 곱셈과 거의 같습니다. base 2의 XOR 곱셈에 익숙하지 않다면 여기에 훌륭한 설명이 있습니다 . 먼저 그것을 먼저 살펴 보는 것이 좋습니다.
Base -2의 XOR 곱셈은 위에서 정의한 전통 +
을 사용하여 모든 숫자를 더하는 대신 마지막 단계가 될 때를 제외하고는 Base -2에서 긴 곱셈을 수행하는 것과 같습니다 +'
.
아래에 예제가 나와 있습니다.
십진수로 시작하십시오.
8 *' 7
베이스 -2로 변환 :
11000 *' 11011
긴 분할을 설정하십시오.
11000
*' 11011
---------
첫 번째 숫자에 두 번째 숫자마다 곱하기
11000
*' 11011
------------
11000
11000
0
11000
11000
기본 -2 XOR 추가를 사용하여 모든 결과를 더합니다
11000
*' 11011
-------------
11000
11000
0
11000
+' 11000
-------------
101101000
결과를 다시 십진수로 변환하십시오.
280
도전
숫자 -2의 숫자가 XOR 소수인지 여부를 확인해야합니다. 밑수에 곱하는 정수 쌍이 1과 그 자체 인 경우 숫자는 밑수 -2의 XOR 소수입니다. (1은 소수가 아닙니다)
입력이 기본 -2 잘못된 거짓 XOR 소수이면 숫자를 가져 와서 부울 값을 출력합니다.
솔루션은 목표로 가장 적은 바이트 수를 달성하여 바이트 단위로 점수가 매겨집니다.
테스트 사례
다음은 기본 -2의 모든 XOR 소수입니다.
-395
-3
-2
3
15
83
다음은 기본 -2의 XOR 소수 가 아닙니다 .
-500
-4
0
1
258
280
258
같음-2 *' -129 = 10 *' 10000011