균형 잡힌 삼항 논리
삼항 일반적으로 말을하는 것입니다 기본 3의 또 다른 이름이며, 각 숫자는 0, 1또는 2, 각각의 장소는 다음 장소만큼 3 배 가치가있다.
평형이 원계의 숫자를 사용하여 원의 변형이며 -1, 0그리고 1. 이것은 사인이 필요 없다는 장점이 있습니다. 각 장소는 여전히 다음 장소보다 3 배나 가치가 있습니다. 처음 몇 양의 정수이다 따라서 [1], [1, -1], [1, 0], [1, 1], [1, -1, -1]처음 몇 음수 인 반면 [-1], [-1, 1], [-1, 0], [-1, -1], [-1, 1, 1].
세 개의 입력이 x, y, z있습니다. z중 하나입니다 -1, 0또는 1동시에, x및 y에서 할 수 있습니다 -3812798742493에 3812798742493포함.
첫 번째 단계는 변환하는 것입니다 x및 y소수점에서 균형 잡힌 원에. 이렇게하면 27 개의 속임수 (TeRnary digITS)가 제공됩니다. 그런 다음에서 trits을 결합해야 x하고 y삼항 작업을 사용하여 쌍으로하고 소수의 결과 등을 변환합니다.
z이 세 가지 삼항 연산 중 하나에 각각 매핑 할 값을 선택할 수 있습니다 .
A: 두 개의 trit이 주어지면 둘 중 하나가 0이면 결과는 0이고, 그렇지 않으면 결과가 -1이고 다른 경우 1입니다.B: 두 개의 trit이 주어지면 둘 중 하나가 0이면 결과는 다른 trit입니다. 그렇지 않으면 결과가 다르면 0이되고, 같으면 부정이됩니다.C: 두 개의 trit이 주어지면 결과가 다르면 0이되고 값이 같으면 값이 0입니다.
예. 가정하자가 x있다 29하고 y있습니다 15. 균형 잡힌 삼항에서는 이것들이 [1, 0, 1, -1]이고 [1, -1, -1, 0]. (나머지 23 trits 제로는 간결함을 위해 생략되어있다.)가되어, 각 작업마다 한 후 A: [1, 0, -1, 0], B: [-1, -1, 0, -1], C: [1, 0, 0, 0]. 변환 다시는 결과가 진수 24, -37및 27각각. 더 많은 예제를 보려면 다음 참조 구현을 시도하십시오.
참조 구현은 위에 제공된 단계를 따르지만 물론 동일한 결과를 생성하는 알고리즘을 자유롭게 사용할 수 있습니다.
이것은 code-golf 이므로 표준 허점을 위반하지 않는 가장 짧은 프로그램이나 기능이 승리합니다!
z중 하나가 될 필요가 -1,0,1또는 우리는 어떤 세 일관되고 고유 한 값을 선택할 수 있습니다? 나는 1,2,3내 대답에서 선택 했고 그것에 대해 약간의 혼란이 있습니다.