• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:パイソンの参考書のプログラムを写したのにエラーが…)

エラーが出てきてしまいます!デコレータとキャッシュの利用でフィボナッチ数列を出力するコードを写したのに

このQ&Aのポイント
  • パイソンの参考書のプログラムを写したのにエラーが出てきてしまいます。
  • デコレータとIru_cacheを利用してフィボナッチ数列を出力するコードを写したんですが、何度やってもインポートエラーが出てきてしまいます。
  • 調べても原因が分かりません。どうやったら直りますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8088/17295)
回答No.1

Iru_cache ではなくて lru_cache ですよ。 つまり。大文字のアイではなく,小文字のエルですよ。

hf-sbf5
質問者

お礼

回答ありがとうございます。 小文字のエルだったんですね

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Python: print fib(0) None

    「Pythonチュートリアル」というO'REILLYの本の33ページ目に、 >>> print fib(0) None を返すように書かれているのですが、実際にはエラーが返ってきます。 本当にNoneが返ってくるべきなのでしょうか? そして、Noneを返すにはどうすればいいのでしょうか? 本はPython 3.1.1を使用しているそうです。 私はPython 3.5.1を使用しています (同じVersionにしましょう、という回答はなしの方向でお願いします)。 実際の結果: In [87]: fib(3) 0 1 1 2 In [88]: fib(0) [空白です] In [89]: print fib(0) File "<ipython-input-89-1cd6a4451e49>", line 1 print fib(0) ^ SyntaxError: invalid syntax 関数fib自体は以下の通りです: In [73]: def fib(n): # フィボナッチ級数をnまで書き出す ....: """nまでのフィボナッチ級数を表示する""" ....: a, b = 0, 1 ....: while a < n: ....: print(a, end=' ') ....: a, b = b, a+b ....: print() ....: In [74]: # では、この関数を呼び出してみよう: In [75]: fib(2000) 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 ・・・ではお願いします。

  • C言語ソースコードに関する質問です。

    以下の数列について,初項から第15項までを求めるプログラムと実行結果を示せ。 0 1 1 2 3 5 8 13 21(ただし,初項=0,第1項=1とする。) ソースコードを書くと、エラーがでた。 #include <stdio.h> int fib(int n) { if(n==1 || n==2) return 1; else return fib(n-1)+fib(n-2); } int main(void) { int n; for(n=0;n<17;n++) printf("%d,",fib(n)); } 正しソースコードを教えてください! よろしくお願いします。

  • C言語で分からない点があるのですが……

    C言語で分からない点があるのですが…… こんにちは。C言語を学んでいて、詰まったので宜しければ回答いただけると嬉しいです。 フィボナッチ数列に関するプログラミングです。 ユーザから数字を受け取ります。(第何項か) そこまでの数字を表示するというプログラムです。 n=3なら F1=1 F2=1 F3=2 という具合です。 しかし、実行した結果が添付した図の通りで、途中の項がすっ飛ばされていました。 どうすればいいんでしたっけ? 宜しければご助力ください!! #include<stdio.h> fib(int n) { if(n == 1)return(1); else{ if(n == 2) return (1); else return fib(n-1) + fib(n-2); } } main() { int n, i ; printf("INPUT number.: "); scanf("%d",&n); for(i=2; i<=n; i++){ printf("F%d = %d\n",n, fib(n)); } }

  • pythonでフィボナッチ数カウントを行いたいのですが...

    pythonで、入力された二つの数字によるrange(a, b)内からフィボナッチ数の数をカウントするプログラムを書きたいのですが、どのように書けば良いでしょうか?因みに、今のところ a=int(raw_input("Enter the minimum valuer:")) b=int(raw_input("Enter the maximum value:")) def fib(n): if n <= 0: n = 0 elif n == 1: n = 1 else: n = fib(n-1) + fib(n-2) return n for i in range(a, b+1): まで書いてみたのですが、この後どうしたら良いかわからなくなってしまいました。 初歩的な質問なのですが、どうかご回答よろしくお願いします。

  • C言語で分からないところがあるのですが……

    C言語で分からないところがあるのですが…… すみません。C言語の課題で分からないところがあり、質問しに来ました。 ユーザから数を受けて、そこまでのフィボナッチ数列を表示させるというプログラムです。 下のソースコード(でいいんですよね?)は正しいやつです。 for文を使って、繰り返しの作業を行うことに成功しましたが、doとwhileに書き換える作業がうまくできません。 どなたか助けてください。 #include<stdio.h> fib(int n) { if(n == 1)return(1); else{ if(n == 2) return (1); else return fib(n-1) + fib(n-2); } } main() { int n, i ; printf("INPUT the number. : "); scanf("%d",&n); for(i=1; i<=n; i++){ printf("F%d = %d\n",i, fib(i)); } }

  • rubyの特異メソッド

    Rubyプログラミング入門という本を読んでいた際、 フィボナッチ数列を求めるプログラムが例としてありました。 以下はソースと実行結果です。 def (Fib = [0, 1]).[](n) super || Fib[n] = Fib[n-1] + Fib[n-2] end p fib(30)[0] #=>832040 このプログラムを理解するキーワードは特異メソッドと明記されていましたが、 (Fib = [0, 1]).[](n) や super || Fib[n] の部分がわかりません。 ご教授よろしくお願いします。

  • jupyterノートでのエラー

    こんばんは。 Stable Diffusionを使ってjupyterノートでStable Diffusionのスクリプトを作っているのですが実行してもこのようなエラーが返ってきます。 ご教示お願いします。 ImportError: cannot import name 'experimental_functions_run_eagerly' from 'tensorflow.python.eager.def_function'

  • C言語<素数を求めるプログラム>

    #include<stdio.h> int j; int prime(int n) { int i; if(n < 2) return 0; if(n == 2) return 1; if(n%2 == 0) return 0; for(i = 3; i*i<= n; i += 2){ if(n%i == 0) return 0; } return 1; } int main(void) { int n; for(n=1; n <= 1000; n++) { if(prime(n)){ printf("%d\n",n); j++; } } printf("素数の個数は全部で %d 件見つかりました。\n",j); return 0; } このプログラムは1から1000までの素数のみを表示させるプログラムでありますが、このアルゴリズムが全くわかりません。 int prime(int n)の中身のアルゴリズムがどういう仕組みになっているのかお分かりになりますでしょうか?

  • Rubyのプログラムについて

    Rubyのプログラムについて、宜しければ教えてください。 def fct(n, f=1) if n<=1 then f else fct(n-1, n*f) end end def factorial(n) (1..n).inject{|x,y| x*y} end def factorial(n) eval( [*(1..n)].join("*") ) end このプログラムが、階乗を計算するメソッドになっているみたいなのですが、なぜコレだけで階乗が計算できるのでしょうか? 宜しければ教えてください><

    • ベストアンサー
    • Ruby
  • このプログラム見てください

    これで動いたと書いてあるのに動きません。 どこを直せば良いのか教えてください。 #include <stdio.h> int combination(int n,int r){ if ( r==0 ){ return 1; }else if( r==n ){ return 1; }else{ return (combination(n-1,r-1)+combination(n-1,r)); } } int main(){ int num_n=0; int num_r=0; int answer=0; printf("組み合わせの計算をします。数値を入力してください。N=?。\n"); printf("[n]:"); scanf("%d",&num_n); rewind(stdin); printf("[r]:"); scanf("%d",&num_r); rewind(stdin); answer=combination(num_n,num_r); printf("%dC%d=%d\n" , num_n, num_r, answer); return 0; }

このQ&Aのポイント
  • Wi-Fiのモデムを新しく交換したら、パソコンからの無線LANの印刷ができなくなりました。
  • パソコンからの印刷ができない問題は、Wi-Fiのモデムを交換したことが原因で発生しました。
  • 新しいWi-Fiのモデムを使ってパソコンからの印刷を行おうとすると、何らかのエラーが発生して印刷ができません。
回答を見る