🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

Q&A

解決済

1回答

509閲覧

[Python][Processing] RuntimeError: maximum recursion depth exceeded

amber_snob

総合スコア30

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

0グッド

0クリップ

投稿2019/11/07 08:54

ProcessingをPythonで書いています。
階乗の関数factorialで最大再帰深度を超えたという趣旨のエラーがでました。
引数は3以下しか取らないので最大再帰深度を超えたということは考えづらいです。
他に原因があると思われるのですが詳しい方がいらっしゃいましたら教えていただきたいです。

以下はエラーです。

RuntimeError: maximum recursion depth exceeded

以下はエラー部分が含まれる関数です。

python

1def factorial(n): 2 if(n==1):return n 3 return n*factorial(n-1)

以下は全体のコードです。

Python

1size_x = 512 2size_y = 384 3px0 = 200 4py0 = 10 5px1 = 450 6py1 = 400 7px2 = 50 8py2 = 400 9px3 = 300 10py3 = 10 11 12def setup(): 13 size(size_x, size_y) 14 noLoop() 15 16def draw(): 17 background(0) 18 stroke(255,255,255) 19 bezier(px0, py0, px1, py1, px2, py2, px3, py3) 20 21def factorial(n): 22 if(n==1):return n 23 return n*factorial(n-1) 24 25def bernstein(n, i, t): 26 b = factorial(n)/(factorial(i)*factorial(n-i))*t^i*(1-t)^(n-i) 27 return b 28 29def bezier(x0, y0, x1, y1, x2, y2, x3, y3): 30 t = 0 31 while(t < 1): 32 x = x0*bernstein(3,0,t)+x1*bernstein(3,1,t)+x2*bernstein(3,2,t)+x3*bernstein(3,3,t) 33 y = y0*bernstein(3,0,t)+y1*bernstein(3,1,t)+y2*bernstein(3,2,t)+y3*bernstein(3,3,t) 34 point(x,y) 35 t += 0.001

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

原因はbernstein(3,0,t)bernstein(3,3,t)の部分では?
どちらもfactorialの引数として0が入ってしまい、再帰から抜け出せなくなっています。
0が入らないようにするか再帰から抜ける条件を見直したほうがいいです。

投稿2019/11/07 12:19

mistn

総合スコア1191

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

amber_snob

2019/11/07 15:00

mistnさんありがとうございます。 エラーを解決して表示できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問