Estoy trabajando con fracciones usando el módulo decimal de Python y me gustaría obtener solo la parte repetitiva de una cierta fracción. Por ejemplo: si tuviera 1/3 me gustaría obtener 3, si tuviera 1/7 me gustaría obtener 142857. ¿Hay alguna función estándar para hacer esto?¿Hay alguna manera de obtener la sección decimal repetitiva de una fracción en Python?
Respuesta
Encuentra el primer número de la forma 10 ** k - 1 que se divide exactamente por el denominador de la fracción, divídelo por el denominador y multiplica por el numerador y obtienes la parte que se repite.
Dado que dar la respuesta podría ser un spoiler para proyecto euler (que generalmente no se hace aquí en stackoverflow), me gustaría dar esta pista: lea this (la sección 1.2 debe sonar una campana).
es una pista muy buena sin spoiler, darse cuenta de lo que está pasando aquí es lo que hace de las matemáticas un ejercicio divertido – hansaplast
Sé que esta pregunta fue hace mucho tiempo, pero pensé que la gente probablemente aún buscaba algo así, así que pensé que mencionaría algunas cosas a tener en cuenta cuando lo haga, ya que intenté codificar y finalmente cambié de opinión. usando la división larga y descubriendo dónde ocurre la repetición cuando obtiene un resto después de dividirse en él. Originalmente estaba tratando de usar el método sugerido por Ants Aasma.
Estaba tratando de obtener un resultado como este para 1/7, ya que mi función estaba tratando de generar una cadena que podría utilizarse como respuesta a una pregunta; "0.142857 142857 ..."
Los decimales como 1/7 se encuentran muy fácilmente utilizando el método proporcionado por Ants Aasma, sin embargo, resulta doloroso cuando intenta algo como 1/35 - esto no se puede dividir en número lleno de 9s En primer lugar, cualquier denominador tendrá que tener factores de 10 divididos, es decir, dividir todos los 5 y 2, convirtiendo una fracción como 1/35 a 0.2/7
Por una fracción como 1/70 , Creo que la mejor manera es encontrar 1/7 y luego colocar un 0 justo después del lugar decimal. Para 1/35, conviértalo a 0.2/7 y luego a 2/7 con un 0 entre la parte que se repite y el lugar decimal.
Solo un par de consejos a tener en cuenta si se usa el método sugerido por Ants Aasma.
- 1. Python Convierte fracción a decimal
- 2. Aproximación de fracción decimal a fracción irracional
- 3. obtener la parte de la fracción de un número decimal
- 4. Redondeo de la fracción decimal en ios
- 5. De Fracción a Decimal y Atrás?
- 6. ¿Hay alguna manera de hacer columnas de tabla igual a una fracción del ancho total?
- 7. programar una cita repetitiva en Python 3
- 8. ¿Hay alguna manera de obtener un REPL en pydev?
- 9. ¿Hay alguna manera de obtener PartionKeys distintas de una Tabla
- 10. Cómo analizar una fracción decimal en Rational en Haskell?
- 11. ¿Hay alguna manera de marcar o vincular a una sección de una página sin un ancla?
- 12. Algoritmo optimizado para convertir un decimal en una fracción "bonita"
- 13. PHP convierte decimal a fracción y viceversa?
- 14. ¿Hay alguna manera fácil de obtener ServerName en Symfony?
- 15. ¿Hay alguna manera de que un módulo kernel encuentre direcciones de sección de otro módulo cargado?
- 16. ¿Hay alguna manera de obtener todas las variables en Ruby?
- 17. ¿Hay alguna manera fácil de obtener sombras en OpenGL?
- 18. ¿Hay alguna manera de acceder al hardware directamente en Python?
- 19. ¿Hay alguna manera de obtener la palabra en el menú contextual en una extensión de Firefox?
- 20. ¿Hay alguna manera de dibujar primitivas en 3D con Python?
- 21. ¿Cómo redondear un decimal a la fracción más cercana?
- 22. ¿Hay alguna manera de mezclar cadenas en Python?
- 23. ¿Hay alguna manera de obtener atribución para una imagen de fondo en la capa de presentación?
- 24. ¿Hay alguna manera de pausar una CABasicAnimation?
- 25. ¿Hay alguna manera de desactivar una etiqueta?
- 26. ¿Hay alguna manera de agregar múltiples receptores en Python SMTPlib?
- 27. ¿Hay alguna manera de identificar un método heredado en Python?
- 28. ¿Hay alguna manera de obtener datos ortográficos de un NSString?
- 29. ¿Hay alguna manera de anular ConfigurationManager.AppSettings?
- 30. ¿Hay una función de Javascript que reduzca una fracción de
Proyecto Euler n ° 26? – ChristopheD
Sí, Project Euler n ° 26. –
No estaba pidiendo una forma de resolver el problema, solo estaba preguntando si había una función que lo hizo (aparentemente no). –