私はPythonの小数モジュールを使って分数を扱っています。私は分数の繰り返し部分だけを取得したいと思います。例えば、私が1/3を持っていたら3を得たいと思っています。もし1/7があれば142857を得たいと思います。これを行う標準的な関数はありますか?Pythonで分数の小数部分を繰り返す方法はありますか?
答えて
分数の分母で正確に分ける10 ** k - 1という形式の最初の数を見つけ、それを分母で割り、分子で掛けると、繰り返し部分が得られます。
答えを与えることはプロジェクトオイラーのスポイラー(これは一般的にここではstackoverflowでは行われません)ですから、このヒントを教えてください:thisを読んでください(セクション1.2でベルが鳴ります)。
これは、ここで起こっていることを理解することは、数学を楽しくする運動です – hansaplast
私はこの質問が長い時間前だったと知っていますが、人々はおそらくこのようなものをまだ探していると考えました。長い分割とそれに分割した後に余分になったときに繰り返しが発生する場所を見つけることです。私は実際にAnts Aasmaによって提案された方法を使用しようとしていました。
私の関数は質問に対する答えとして使用できる文字列を出力しようとしていたので、これは1/7の出力を得ようとしていました。 "0.142857 142857 ..."
1/7などの小数は、Ants Aasmaのメソッドを使用すると非常に簡単に見つかりますが、1/35などのようなものを試してみると痛いことがあります。 9の数字でいっぱいです。まず第一に、分母は10分の1の任意の因子を分けなければならない。すなわち、5分の1と2分の1とを1/35から0.2/7のように分ける。
1/70私は、実際に1/7を見つけて小数点以下の直後に0をつけることが最善の方法だと考えています。 1/35の場合は、0.2/7に変換し、2/7に変換し、繰り返し部分と小数点の間に0を設定します。
Ants Aasmaが提案した方法を使用している場合、覚えておくべきヒントのほんの2つです。
- 1. 繰り返し増分リストの部分的な回数
- 2. Mysqlは増分数を繰り返すのですか?
- 3. XMLビルダーでどのように繰り返し部分がありますか?
- 4. ダブルに小数部分があるかどうかを確認する方法はありますか?
- 5. 複数回のPythonコードを繰り返します - それを凝縮する方法はありますか?
- 6. ループ中の繰り返しの仕方が分かりません - PYTHON
- 7. あまりにも大きな数値を返すPythonの分数
- 8. 繰り返しパターンを分割する方法は?
- 9. ejs内でJSONオブジェクトを繰り返し処理する部分
- 10. なぜこのPython関数がNoneを返すのか分かりません。ローカルではありません。
- 11. アクションを繰り返すエレガントな方法はありますか?
- 12. バインディングを繰り返す方法はありますか?
- 13. 繰り返しタグへの部分文字列オフセットを操作する方法
- 14. Pythonでアクションを繰り返す方法
- 15. Python関数の繰り返し行を削除する方法
- 16. content_forの中に複数の部分がありますか?
- 17. 分割操作の捨てられた部分を返す方法はありますか?
- 18. プライム因数分解JSで繰り返しを与える
- 19. Pythonで繰り返しリストを分割する
- 20. 入力は浮動小数点になり、プログラムは全体の部分と10進数値を返します
- 21. なぜ部分関数型のリテラルはありませんか?
- 22. 親の中に部分的にある子を部分的にレンダリングする方法はありますか?
- 23. Pythonで文字を繰り返さない最長の部分文字列
- 24. HaskellでRationalへの小数部分の解析方法は?
- 25. 文字列を小さな部分に繰り返し分割するためのデータ構造
- 26. Pythonには分数を減らす関数がありますか?
- 27. 繰り返し文字列を分ける方法は?
- 28. 分数を文字列に変換し、繰り返し部分に[]を挿入する
- 29. FORループのループテスト部分内の関数は、繰り返しごとに呼び出されますか?
- 30. 分数クラスは分数の代わりに文字列を返します
プロジェクトオイラーn°26? – ChristopheD
はい、プロジェクトオイラーn°26. –
私は問題を解決する方法を求めていませんでした、私はちょうどこれをした機能があったかどうか尋ねていた(明らかにそうではありません)。 –