Necesito una manera simple de encontrar si la variable originalnumber
es una potencia de dos. Prefiero evitar el uso de funciones, especialmente porque estoy increíblemente confundido por los parámetros, por lo que algo como la división sería útil
Esto está en Python 3.
Sería útil algo similar a cómo se encuentra si un número es divisible por otro número.
Al principio tenía (solo un ejemplo de lo que estoy buscando):
if originalnumber % 2 == 0:
print("is power of 2")
else:
print("is not power of 2")
3 respuestas
Lo haría a través de la función math.log, que forma parte del paquete matemático.
import math
base = 2
number = 8
print(math.log(number,base))
Output: 3
A continuación, puede verificar si esta salida es un número entero o flotante, y continuar desde allí.
Hay una manera fácil, pero necesitarás usar una función matemática:
import math
2 ** int(math.log(n, 2)) == n
Aquí estamos comprobando si el número n
es una potencia de dos mediante el uso de identidades logarítmicas simples.
Para explicarlo en palabras: si 2 a la potencia del logaritmo de base 2 de n
, es igual a n
, es porque n
es una potencia de 2.
¿Podría convertir el número a una cadena binaria y verificar que todos menos el primer dígito son "0"?
def is_power_of_two(n):
return "{:b}".format(n)[1:].replace("0", "") == ""
Para entender exactamente cómo funciona esto, tenía que:
- saber el sistema de números binarios
- lea sobre cómo declarar y usar funciones.
- leer sobre el formato de cadena ()
- Lea sobre las funciones de cadena (replace ())
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.