質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.46%
Python

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

Q&A

3回答

617閲覧

トリボナッチ数を判定する関数の作り方がわかりません。(超初心者です。)

horietakahumi

総合スコア0

Python

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

0グッド

1クリップ

投稿2021/07/23 02:16

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
n がトリボナッチ数なら True を、そうでないなら False を返すというような関数を作っています。途中で理解ができなくなりました。ここからどうやってトリボナッチ数を判定するようなコードを書けば良いでしょうか?

該当のソースコード

python

1ソースコード 2```def tri(n): 3 if n in [0,1]: 4 return 0 5 elif n == 2: 6 return 1 7 else: 8 return Trib(n-1) + Trib(n-2) + Trib(n-3) 9 10print([tri(n) for n in range(15)])

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

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

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

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

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

anozon

2021/07/23 02:18

コードブロックが崩れています
LouiS0616

2021/07/23 02:31

現状のプログラムが『何をする』プログラムか理解されていますか。
kazuma-s

2021/07/23 13:21

「ソースコード」が四角い枠の中にあるのを変だと思いませんか? 「def tri(n): ... print([tri(n) for n in range(15)])」を「ソースコード」に上書きすべきなんですよ。
guest

回答3

0

完全なコードは回答としてよくないので、ヒントとなるコードを書きます。

Python

1def is_tribo(n): 2 t0, t1, t2 = 0, 0, 1 3 while t2 < n: 4 t0, t1, t2 = t1, t2, t0+t1+t2 5 return t2 == n 6 7while True: 8 n = int(input('> ')) 9 print(is_tribo(n))

このコードには問題がありますが、ちょっと修正するだけで解決するはずです。
コードの意味をよく理解して頑張ってください。
質問は受け付けますので、コメントに書いてください。

投稿2021/07/23 12:56

kazuma-s

総合スコア8224

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

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

0

python

1def tribonacci(n: int) -> int: 2 l=[0,1,1,2] 3 for i in range(n+1): 4 if i >3: 5 l.append(l[i-1]+l[i-2]+l[i-3]) 6 return l[n] 7 8def istribonacci(num: int) -> bool: 9 trib_list = [] 10 r = 100 11 for i in range(r): 12 trib_list.append(tribonacci(i)) 13 14 return num in trib_list 15 16print(istribonacci(149)) # n=10 , 149 -> True 17print(istribonacci(150)) # False 18tribonacci(110) # 43458307810949238672214594009

ためしにtribonacci(100)を見たらすごい大きさの数になったので、とりあえず参照元としては十分かと。

投稿2021/07/23 10:34

編集2021/07/23 10:42
toshikawa

総合スコア388

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

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

0

提示のコードをベースにするとちょっと難しいです。

コードを見ると、元にしているのは、n番目のトリボナッチ数を求める関数のようですから、まずはこの関数に戻します。
これをtrib()という関数だとすると、iをどんどん大きくしていきながら、trib(i) を計算して、nと同じ値になればTrue、同じ値にならずにnより大きくなってしまえばFalseとします。

投稿2021/07/23 02:32

編集2021/07/23 02:39
TakaiY

総合スコア12830

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問