Como ya sabemos, un sistema numérico binario es un sistema numérico que tiene solo 2 dígitos, es decir, 0 y 1 . Del mismo modo, también sabemos que un sistema numérico ternario es un sistema numérico que tiene solo 3 dígitos, es decir , 0, 1 y 2 . En este artículo, aprenderemos sobre el sistema numérico ternario equilibrado .
Un sistema numérico ternario equilibrado es un sistema numérico que se compone de dígitos -1, 0 y 1 . Dado que es un inconveniente escribir -1 como un dígito, usaremos la letra Z para este propósito.
Conversión de sistema
decimal a ternario balanceado La conversión de decimal a ternario balanceado se realiza en dos pasos:
- Convierte decimal al sistema numérico ternario.
- Convierta el sistema ternario al sistema ternario balanceado, siguiendo los pasos a continuación:
- atravesar el número ternario, de derecha a izquierda dejando 0 y 1 como está
- cuando encuentre 2, cámbielo a Z y agregue +1 al siguiente dígito en la iteración.
- Algunos dígitos pueden convertirse en +3, luego reemplazar +3 con 0 y agregar +1 al siguiente dígito en la iteración.
- completa este proceso hasta que conviertas todos los dígitos.
Ejemplo: convertir 238 10 a ternario balanceado y viceversa
Primero convierta 238 10 al sistema numérico ternario .
238 10 = 22211 3
Segundo convertir ternario a sistema numérico ternario balanceado:
- Al comenzar la iteración de izquierda a derecha , se omiten dos 1 ya que permanece igual en ternario balanceado.
- Ahora convierta el primer 2 encontrado con z aumentando su siguiente dígito en la iteración en +1. Entonces obtenemos 23Z11 .
- Convierta 3 a 0 con un incremento de +1 en su siguiente dígito en la iteración. Entonces obtenemos 30Z11 .
- Convierta 3 a 0 con un incremento de +1 en su siguiente dígito en la iteración. Entonces obtenemos 100Z11 . (Aquí se supone que 0 está presente antes del dígito más significativo)
El resultado final es 100Z11 .
Nota:-
El sistema también permite la representación de números negativos eliminando la necesidad de un signo negativo antes del número. Todos los números negativos en un sistema ternario equilibrado comienzan con Z. Es
decir:
−1 10 = Z 3 ,
−2 10 = Z1 3 ,
−3 10 = Z0 3 ,
−4 10 = ZZ 3 ,
−5 10 = Z11 3 .
A continuación se muestra el programa para convertir decimales positivos al sistema ternario balanceado:
C++
// C++ program to convert positive // decimals into balanced ternary system #include <bits/stdc++.h> using namespace std; string balancedTernary(int n) { string output = ""; while (n > 0) { int rem = n % 3; n = n / 3; if (rem == 2) { rem = -1; n++; } output = (rem == 0 ? '0' : (rem == 1) ? '1' : 'Z') + output; } return output; } // Driver code int main() { int n = 238; cout << "Equivalent Balanced Ternary of " << n << " is: " << balancedTernary(n); return 0; }
Java
// Java program to convert positive // decimals into balanced ternary system class GFG{ static String balancedTernary(int n) { String output = ""; while (n > 0) { int rem = n % 3; n = n / 3; if (rem == 2) { rem = -1; n++; } output = (rem == 0 ? '0' : (rem == 1) ? '1' : 'Z') + output; } return output; } // Driver code public static void main(String[] args) { int n = 238; System.out.print("Equivalent Balanced Ternary of " + n + " is: " + balancedTernary(n)); } } // This code is contributed by Rajput-Ji
Python3
# Python3 program to convert positive # decimals into balanced ternary system def balancedTernary(n): output = "" while(n > 0): rem = n % 3 n = n // 3 if(rem == 2): rem = -1 n += 1 if(rem == 0): output = '0' + output else: if(rem == 1): output = '1' + output else: output = 'Z' + output return output # Driver Code n = 238 # Function call print("Equivalent Balanced Ternary of", n , "is:", balancedTernary(n)) # This code is contributed by Shivam Singh
C#
// C# program to convert positive // decimals into balanced ternary system using System; using System.Collections.Generic; class GFG{ static String balancedTernary(int n) { String output = ""; while (n > 0) { int rem = n % 3; n = n / 3; if (rem == 2) { rem = -1; n++; } output = (rem == 0 ? '0' : (rem == 1) ? '1' : 'Z') + output; } return output; } // Driver code public static void Main(String[] args) { int n = 238; Console.Write("Equivalent Balanced Ternary of " + n + " is: " + balancedTernary(n)); } } // This code is contributed by Rajput-Ji
Javascript
<script> // Javascript program to convert positive // decimals into balanced ternary system function balancedTernary(n) { var output = ""; while (n > 0) { var rem = n % 3; n = parseInt(n / 3); if (rem == 2) { rem = -1; n++; } output = (rem == 0 ? '0' : (rem == 1) ? '1' : 'Z') + output; } return output; } // Driver code var n = 238; document.write( "Equivalent Balanced Ternary of " + n + " is: " + balancedTernary(n)); </script>
Equivalent Balanced Ternary of 238 is: 100Z11
Publicación traducida automáticamente
Artículo escrito por harsh_thoriya y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA