Dado un número X, encuentre el siguiente número con el mismo número de 1 bits en su representación binaria. Para la entrada x = 12, ¿la salida sería 17?

Representación binaria de 12 = (00001100)

Algoritmo aproximado :

  • comience a escanear desde el lado derecho.
    00001100 <-
  • detenerse en el primer bit 0 precedido por un bit establecido.
    000 0 1100
  • intercambie este bit 0 con el bit establecido anterior
    000 0 1 100 —swap—> 000 1 0 100
  • comenzando desde la posición indicada 00010 -> 1 00, empuje todos los 1 hacia la derecha lo más posible.
  • Resp. -> 00010001

Tome por ejemplo: 00101110 que es 46
Pasos :

  • 00101110 <—inicio—-
  • 001 0 1110
  • 001 0 1 110 –swap–> 001 1 0 110
  • 00110 empujar todo uno -> 11 0
  • Resp. -> 00110011

Una buena presentación … 🙂 🙂

Siguiente número más alto con el mismo número de bits binarios establecidos

More Interesting

Como una niña india de 23 años, he completado mi licenciatura en tecnología. Me interesa la fotografía y la quiero como mi profesión. ¿Hay alguna forma de convencer a mi papá? ¿Qué tengo que hacer?

Cómo escribir un programa que calcule 'b' elevado a power 'n' usando solo suma e iteración

¿Cómo es UMass para un estudiante universitario en ciencias de la computación para estudiantes interesados ​​en IA? ¿Con qué otras universidades se compara?

¿Cómo es útil la optimización convexa en la industria tecnológica?

¿Qué subcampo o resultado en matemática pura podría ser el próximo en encontrar aplicaciones (sorprendentes) del mundo real?

Algoritmos: ¿Cómo visualizo y resuelvo problemas de retroceso?

¿Cuál es la mejor aplicación de la teoría de grafos en la vida real que conoces?

¿Cómo funcionan la Ley Idempotente y la Ley de Dominación?

¿Podrá la inteligencia artificial resolver un problema matemático abierto, como la conjetura de Goldbach o la hipótesis de Riemann?

¿La teoría de números todavía parece ser central o el área más importante de las matemáticas?

¿Cuál es una mejor especialización, CS o matemáticas?

¿Puede una resta dar un resultado negativo usando un número sin signo?

¿Hay algo que una máquina de Turing pueda calcular dado un tiempo infinito que no podría calcular en una cantidad de tiempo arbitrariamente grande?

¿Qué cantidad de cosas de matemáticas que caen en matemáticas discretas necesitas?

¿Cuáles son algunos tipos interesantes de algoritmos / métodos de licitación?