Sistema numérico ternario equilibrado

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: 
 

  1. Convierte decimal al sistema numérico ternario.
  2. 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>
Producción: 

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *