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

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

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

強化学習とは、ある環境下のエージェントが現状を推測し行動を決定することで報酬を獲得するという見解から、その報酬を最大限に得る方策を学ぶ機械学習のことを指します。問題解決時に得る報酬が選択結果によって変化することで、より良い行動を選択しようと学習する点が特徴です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

Q&A

2回答

995閲覧

lambda 式について

teefpc

総合スコア111

強化学習

強化学習とは、ある環境下のエージェントが現状を推測し行動を決定することで報酬を獲得するという見解から、その報酬を最大限に得る方策を学ぶ機械学習のことを指します。問題解決時に得る報酬が選択結果によって変化することで、より良い行動を選択しようと学習する点が特徴です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

0グッド

0クリップ

投稿2021/02/20 03:22

編集2021/02/20 03:36

lambda 式について質問です。

Python

1 2# Example 3 4def increment(n): 5 return n + 1 6 7class Calc(): 8 def __init__(self, n): 9 self.n = n 10 pass 11 12 def add(self, n): 13 return self.n + n 14 15 def multiply(self, n): 16 return self.n * n 17 18 19

上記のような1加算関数と計算クラスがある場合、以下のコードはどのように利用することができますか?
参考サイトhttps://note.com/npaka/n/n5d7d235ad8bc

Python

1calc = Calc([lambda: increment(3)]) 2

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

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

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

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

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

guest

回答2

0

文法的にできることを考えてみました。

python

1>>> print( calc.n[0]()) 24

とか、

python

1>>> print(calc.add([10])[0]()) 24

とか、

python

1>>> print(calc.add(['Hello'])[1]) 2Hello

とか

python

1>>> print(calc.multiply(10)[9]()) 24

とか、

python

1>>> for x in calc.add([lambda: increment(5)]): 2... print(x()) 3... 44 56

とか、いろいろなことが出来ます。
しかし、機械学習とか教科学習との関連があるかどうかはわかりません。

投稿2021/02/20 08:59

ppaul

総合スコア24666

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

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

teefpc

2021/02/24 23:35

ありがとうございます。いろいろと参考にさせていただきます。
guest

0

どのように利用できるというのはどういう意味なのかわかりませんが、

Calcの初期化引数に、increment(3) を呼び出す関数をしていしているので、 変数n(calc.n)にはそのような関数そのものが設定されます。

calc.add(10) とか multiply(5) とかを呼び出すと、関数と数値の演算(+、 *)はできないというエラーになるでしょうね。

代わりに calc.n() と呼び出すと、increment(3)が実行されて、常に4が返りますね。

ということで、この例ではあまり利用価値のありそうなことにはならないと思います。
こういう回答で意図にあってますかね?

投稿2021/02/20 07:57

TakaiY

総合スコア12830

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問