並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 79件

新着順 人気順

再帰の検索結果1 - 40 件 / 79件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

再帰に関するエントリは79件あります。 プログラミングprogrammingアルゴリズム などが関連タグです。 人気エントリには 『ループ、再帰、gotoを使わずに1から100までを印字するC++プログラムは書けますか?』などがあります。
  • ループ、再帰、gotoを使わずに1から100までを印字するC++プログラムは書けますか?

    回答 (11件中の1件目) 追記 再帰のルールをよく理解してませんでした。 分かりやすい例として載せておきます。 [code]#include template struct print { print() { std::cout << N << std::endl; } }; template struct Print { Print() { Print(); print(); } }; template<> struct Print<0> { Print() {} ...

      ループ、再帰、gotoを使わずに1から100までを印字するC++プログラムは書けますか?
    • 「非再帰的ZIP爆弾」は10MBのファイルが281TBに膨らむ

      by Tomas Sobek 数十KBのZIPファイルに見えて解凍すると膨大なファイル容量を食う「ZIP爆弾(高圧縮ファイル爆弾)」は、ZIPファイルの中にZIPファイルを格納し、内側のZIPファイルの中にさらにZIPファイルが……という入れ子構造を用いることで圧縮アルゴリズムの限界をうまく回避していますが、それゆえに多くのアンチウイルスソフトで対策されています。この弱点を乗り越えた「非再帰的ZIP爆弾」は、展開後のサイズこそ高効率で作られた再帰的ZIP爆弾にかなわないものの、わずか10MBから281TBへ2800万倍に膨らみます。 A better zip bomb https://www.bamsoftware.com/hacks/zipbomb/ ZIPの圧縮で一般的に用いられているアルゴリズムは「Deflate(デフレート)」と呼ばれるもので、圧縮・展開速度の速さが特徴的です。圧縮

        「非再帰的ZIP爆弾」は10MBのファイルが281TBに膨らむ
      • MySQLで階層構造を扱うための再帰的なクエリの実装方法と実用例

        1.はじめに RDBでの階層構造の関係を持つデータを扱う上で、 効率的なデータの持ち方や抽出方法について検証を行っています。 結論から先に 階層構造を扱う方法として下記の種類があります。 隣接リスト 経路列挙 入れ子集合 閉包テーブル 再帰クエリ(WITH RECURSIVE)を使うと階層データを扱う上でのパフォーマンスが得られます。 検索性、更新量、データ量など加味すると隣接リストで再帰クエリを用いるのがよさそう。 2.階層構造を持つデータの概要 階層構造を持つデータとは 複数の要素(データ)が親子関係で結びついている構造を持つデータ 1つの要素が複数の要素の親になることができ、 また、1つの要素が複数の子要素を持つこともあります。 ある要素を親として、細分化された子要素であったり、 類似する要素を抽象化したものを親要素とするようなデータ。 階層構造を持つデータの例 組織における事業部、

          MySQLで階層構造を扱うための再帰的なクエリの実装方法と実用例
        • 「ループ・再帰・gotoを使わず1から100までの数値を印字する」Conner Davis 氏の回答の考察 - Qiita

          2019年6月に以下の記事が投稿されました。 ループ、再帰、gotoを使わずに1から100までを印字するC++プログラムは書けますか?に対するIchi Kanayaさんの回答 - Quora 英語版の記事「How to print 1 to 100 in C++ without a loop, goto or recursion - Quora」から興味深い回答を抜き出して、それにランク付けをしながら和訳してくださっている記事です。 初級や中級は「まぁあるよね(C++知らないけれど……)」という感じですが、 上級とされた「マイクロソフト社のデータサイエンティスト Conner Davis 氏」の回答が面白かった ので、ご紹介を兼ねてその発想の源泉を推測してみることにしました。 以下に Conner Davis 氏の回答の和訳を引用します。 マイクロソフト社のデータサイエンティスト Conn

            「ループ・再帰・gotoを使わず1から100までの数値を印字する」Conner Davis 氏の回答の考察 - Qiita
          • 再帰的な構造のデータの同値性判定はどうしたらいいか - 貳佰伍拾陸夜日記

            数日前にTwitterで, JavaScriptのオブジェクトに対する===の挙動が初心者には難しいみたいな話を見かけた. 発端や周辺の議論をちゃんと追いかけてないからとくに出典は貼らない. たぶん元々の話は「へぇ, こういう挙動なんだ, 簡単ではないね」くらいの話だったのかもしれない. 自分のタイムラインの観測範囲では「そうだそうだ, (参照の同一性ではなく)同値性にしとけばいいのに」と思っている人もそれなりにいそうに見えた. 個人的にも同値性が簡単に確認できるとよい気はするものの, 「なんでそうしないんだ, オブジェクトの中身を確認していくだけだろ!」みたいな簡単な話ではないことも知っているため, 以下のようなツイートをしたのだった. JavaScriptのオブジェクトの同値性、再帰的な構造とか作るとぜんぜん自明じゃないんだよなぁ。リンクの構造は違うけどプロパティを辿ったときのパスはど

              再帰的な構造のデータの同値性判定はどうしたらいいか - 貳佰伍拾陸夜日記
            • それ、非再帰で書けます - Qiita

              この記事は再帰自体を全否定する趣旨ではありません。 両方の良さを理解した上で非再帰で書きたいと思ったときの参考にしていただければと思います。 まだ再帰関数書いてるの? 再帰関数はプログラミング言語の有用な機能で、深さ優先探索をベースとする様々なアルゴリズムの実装として有用です。 その一方で、関数呼び出しはオーバーヘッドが大きく、定数倍が弱くなります。また、JavaやPythonなどのスタック領域の制限が厳し目の言語では深すぎる再帰のせいでRuntime Errorが発生する場合があります。 C++などのコンパイル言語ではインライン展開によって関数呼び出しのオーバーヘッド解消されることもありますが、再帰関数は中でもインライン展開の難易度が高く、深い再帰ではそのまま実行せざるを得ない状況になります。 ところが、再帰関数は生のスタックを自分で用意するなどして非再帰に書き直すことができます。(「停

                それ、非再帰で書けます - Qiita
              • 競走馬の血統をSQLで再現できる! 再帰クエリ徹底活用してみた - asoview! Tech Blog

                アソビュー! Advent Calendar 2022の10日目です。 8月に入社しアソビューでバックエンドエンジニアをしている長友です。 みなさま再帰クエリ使っていらっしゃるでしょうか! 最近アソビューではmysqlの8系へのバージョンアップを行った為、再帰クエリの利用が可能となりました。 そこで本日は、アソビュー競馬部にも所属しておりサラブレッドの血統好きな私が再帰クエリを使ってツリー構造の血統表を作成してみるというお話です。 血統表とは ~ 本稿の目的 再帰クエリについて mysqlにおける再帰クエリの構文 再帰クエリとナイーブツリー構造 血統表作成における再帰クエリ 血統表のデータ構造 血統表を作成するクエリ ポイント1. 世代を表すgenerationを0で初期化し、各再帰の中でインクリメントする ポイント2. 世代内での配置を表すpositionを初期値1で定義し、再帰で取得す

                  競走馬の血統をSQLで再現できる! 再帰クエリ徹底活用してみた - asoview! Tech Blog
                • よくやる再帰関数の書き方 〜 n 重 for 文を機械的に 〜 - けんちょんの競プロ精進記録

                  時は 2020 年 5 月 3 日。 ここ最近、AtCoder では、「再帰関数を用いた DFS な全探索」というタイプの問題が激増しています!!! AtCoder ABC 165 C - Many Requirements (昨日のやつ) AtCoder ABC 114 C - 755 AtCoder ABC 119 C - Synthetic Kadomatsu AtCoder ABC 161 D - Lunlun Number パナソニックプログラミングコンテスト D - String Equivalence これらの多くは緑後半から水色前半の difficulty を叩き出す、とても恐れられている問題たちです。しかし実のところ、「ちょっと複雑だけど、単純に全探索するだけ」という側面もあります。 これらの出題が最近急増しているのは、おそらくは AtCoder 社側に 最近の AtCo

                    よくやる再帰関数の書き方 〜 n 重 for 文を機械的に 〜 - けんちょんの競プロ精進記録
                  • 幻想再帰のアリュージョニスト(最近) - カクヨム

                    私が「小説家になろう」に投稿を始めたきっかけが、このカルト的人気を誇る作品でした。 当時の衝撃を今でも覚えています。 とあるまとめサイトに紹介されていた本作品を読んだとき、私は「こんなに自由に書いていいんだ!」と思いました。 サイバーパンク的なSF用語とハイファンタジーが高度なレベルで融合しており、それでいて物語がドラマチックで面白い。 物語の風呂敷がもう笑っちゃうほどクソデカに広がっていて、作者の好きなもの(?)がこれでもかと思うぐらいぎっしりと詰まっています。 そして、こんな書き方をしてもいいんだ、こんな書き方してみたい、と目からウロコが落ちました。 私の中で、小説の書き方の『幅』…続きを読む

                      幻想再帰のアリュージョニスト(最近) - カクヨム
                    • 【理論から実践まで】動かしながら学ぶ!ゼロからわかる再帰的ニューラルネットワーク(RNN) - LABOT 機械学習ブログ

                      この記事では再帰的ニューラルネットワーク (RNN) について解説をします。RNN の理論的な説明から入り、Keras を用いて実際に RNN を動かしてみます。単純RNN (SimpleRNN), LSTM, 双方向RNN (bidirectional RNN), deep RNN を用いてモデリングをします。なおこの記事はGoogle Colaboratory で動かすことができ、実行しながら読むことをおすすめします。 ノートブックを開く 再帰的ニューラルネットワーク 再帰的ニューラルネットワーク(リカレントニューラルネットワーク、RNN))は系列データのモデルです。 各時刻 $t_1, t_2, \cdots,t_n$で$\vec{x_1}, \cdots, \vec{x_n}$が入力されたときベクトル$\vec{y_1}, \cdots, \vec{y_n}$ を予測するモデルです

                      • 関数の再帰的な定義に名前付けは必要か - 貳佰伍拾陸夜日記

                        結論から言うと, 名前を付けることなく再帰的な関数を定義することは可能. 特定のプログラミング言語でどうかというよりは抽象概念としての関数の再帰を名前なしに実現可能かどうかという話(名前なしに実現できるプログラミング言語は存在するかという話). 発端 id:naoyaさんがこういうツイートをしていた. 再帰を書くときに何気なく関数に名前つけたり let で束縛したりしてたけど「再帰には三項関係が必要でありその実現には記号が本質的に関わる」とあり、名前づけの行為が必然だったことが分かった。プログラミングするときの視点が変わるな— naoya (@naoya_ito) 2022年8月12日 たとえば以下のように書いたときのlet fact =みたいな話. let fact = n => n <= 1 ? 1 : n * fact(n-1) ちなみに, 話は一見逸れるけど, こう書けると必然的に

                          関数の再帰的な定義に名前付けは必要か - 貳佰伍拾陸夜日記
                        • 新卒エンジニア向け機械学習研修2022〜機械学習と再帰化〜 - ペパボ研究所ブログ

                          研究員の渡辺(@watasan) です。 先日、ペパボ研究所のメンバーが社内で実施した、新卒エンジニア向け機械学習研修についてご紹介します。 ペパボ研究所は2020年から、新卒エンジニア研修1の一環として機械学習研修を実施しています2。 今年で3年目となりますが毎年アップデートを重ねており、今年はより「ペパボらしさ」の強い研修となりました。 このエントリでは本研修の目的やコンテンツについてご紹介できればと思います。 本研修の位置付けと目的 GMOペパボ(以降ペパボ)では、新卒入社したエンジニアに向けて、様々な技術要素について「現時点で一番良いやり方」を学んでもらうための研修を毎年行っています2。 フロントエンド、バックエンド、インフラ、セキュリティなど、Webサービスを構築するための技術に関して「現時点で一番良いやり方」を学ぶことが研修全体のゴールとして設定されています。 この新卒エンジニ

                            新卒エンジニア向け機械学習研修2022〜機械学習と再帰化〜 - ペパボ研究所ブログ
                          • [数学×Python]再帰呼び出しをマスターしよう

                            再帰に対して多くの人が持つであろう苦手意識を払拭(ふっしょく)するために、再帰の基本から、その考え方とプログラミングの方法を見ていく。動的計画法を利用した最小コストの計算法などについても紹介する。 連載目次 前回は、積分の数値計算法を見ました。今回は、「計算」から少し趣を変えて、再帰呼び出し(以下、必要がなければ「再帰」と略記します)のPythonプログラミングを見ていきます。 再帰とは関数の定義の中でその関数を呼び出すプログラミングの方法です。自分自身を呼び出すようなイメージなので「訳が分からない」と再帰に苦手意識を持つ人も多いようですが、基本は高校で学んだ「漸化式(ぜんかしき)」をそのままコードとして表すだけです。漸化式も名前はいかめしいですが、要するに「芋づる式」に、順に値を求めていくことです。今回は、漸化式と再帰の基本的な考え方を押さえた後、応用例として、メモ化により計算量を減らす

                              [数学×Python]再帰呼び出しをマスターしよう
                            • 「聖なるものを人間化する」若者たち―『再帰的近代のアイデンティティ論 ポスト9・11時代におけるイギリスの移民第二世代ムスリム』(晃洋書房)/安達智史(著者) - SYNODOS

                              2020.12.11 「聖なるものを人間化する」若者たち―『再帰的近代のアイデンティティ論 ポスト9・11時代におけるイギリスの移民第二世代ムスリム』(晃洋書房) 安達智史(著者)社会学理論、政治哲学 「イスラーム」あるいは「イスラーム教徒(以下、ムスリム)」と聞くと、どんなイメージをもつでしょうか。頭・全身を覆うスカーフやヴェールを着用する女性、白い帽子や首から足下までが隠れるガウンを着こなす男性などを思い浮かべるかもしれません。ヨーロッパに旅行した人なら、西洋の都市空間のなかに異質な文化的景観を作り上げる、少しとっつきにくい人たちという印象を抱くかもしれません。あるいは、より近年では、ヨーロッパやその他の地域で相次ぐ過激主義者による「テロ」となんとなく紐付けてイメージする人も多いかもしれません。 ここで紹介する拙著『再帰的近代のアイデンティティ論―ポスト9・11時代におけるイギリスの移

                                「聖なるものを人間化する」若者たち―『再帰的近代のアイデンティティ論 ポスト9・11時代におけるイギリスの移民第二世代ムスリム』(晃洋書房)/安達智史(著者) - SYNODOS
                              • 【Python】再帰関数を使ったプログラミング問題の解き方を解説する - paiza開発日誌

                                StartupStockPhotosによるPixabayからの画像 こんにちは。倉内です。 プログラミング問題には、計算問題だけでなく配列や文字列を操作したり、図形から法則を見つけたりといろいろなものがあります。その中でも「関数を定義して処理を書くのは苦手だな…」と感じている方は多いのではないでしょうか。 私もまさにそのひとりで、基本は学んだものの使いこなせていません…。そこで今回は、さまざまな問題を集めた「レベルアップ問題集」の中から再帰関数を使って解く問題に挑戦しようと思います! 今回はスマートな解き方や綺麗なコードを書くというよりは、プログラミング初心者でもこういう方針を立てて、こう考えてみたら解けるかもということを重視して解いていきます。 プログラミング学習を始めたばかりの初心者の方もぜひ参考にしてみてください。 レベルアップ問題集「山折り谷折り」をPythonで解く paizaで

                                  【Python】再帰関数を使ったプログラミング問題の解き方を解説する - paiza開発日誌
                                • 再帰的ニューラルネットワークとは?自然言語処理に強いアルゴリズムの仕組み

                                  再帰的ニューラルネットワークとは 再帰的ニューラルネットワーク(Recurrent Neural Network: RNN)」は、回帰型・循環型とも呼ばれるニューラルネットワークです。 このネットワークは単語に含まれる「再帰的」という言葉の意味を理解していると、その本質が理解しやすくなります。ただ、「再帰」という単語はコンピューターや数学に関わっていない人には聞き慣れないかもしれません。再帰というのは、事象の結果が原因になり得る状態を指す言葉で、一種の「ループ」をイメージすると分かりやすいでしょう。 たとえば、「ニワトリは卵から生まれ卵はニワトリから生まれ、そのニワトリは卵から……」とか「ジュースを売ったお金で売ったジュースを買い戻し、そのジュースを売ったお金で……」というのは再帰的な事象と言えます。延々と続きそうな現象ですが、「ニワトリが卵を生む前に死ぬ」「お店が閉店する」といった事象が

                                    再帰的ニューラルネットワークとは?自然言語処理に強いアルゴリズムの仕組み
                                  • [アップデート] Lambda 関数が再帰ループを検出して停止するようになりました | DevelopersIO

                                    サポートリージョン アジアパシフィック (香港、ジャカルタ、大阪、ムンバイ、ソウル、シンガポール、シドニー、東京) アフリカ (ケープタウン) カナダ (中部) ヨーロッパ(フランクフルト、アイルランド、ロンドン、ミラノ、パリ、ストックホルム) 南米 (サンパウロ) 米国東部 (オハイオ、北部バージニア) 米国西部 (オレゴン、北部カリフォルニア) 検証 以下 Lambda 関数の再帰ループ検出についての AWS ブログを参考に、再帰ループする Lambda 関数と SQS キューを作成します。 GitHub のサンプルコードは以下を利用します。 AWS SAM CLI を使って環境を構築します。 私は開発環境として Cloud9 を利用しました。 Cloud9 環境の作成 Name:sam-environment Description:sam-environment Cloud9 環境

                                      [アップデート] Lambda 関数が再帰ループを検出して停止するようになりました | DevelopersIO
                                    • どんな物体も“ステルス”加工できる技術 東大などが開発 形状の再帰性反射を最小化

                                      Innovative Tech: このコーナーでは、テクノロジーの最新研究を紹介するWebメディア「Seamless」を主宰する山下裕毅氏が執筆。新規性の高い科学論文を山下氏がピックアップし、解説する。Twitter: @shiropen2 東京大学梅谷研究室とイスラエルのライマン大学、オーストリア科学技術研究所に所属する研究者らが発表した論文「Stealth Shaper: Reflectivity Optimization as Surface Stylization」は、元の形状を保持しつつ表面の再帰性反射を最適化することで物体をステルスデザインに変形するフレームワークを提案した研究報告である。 ステルスデザインとは、戦闘機や戦艦などでよく見られる、形状の再帰性反射を最小限に抑えることでレーダーからの検知を避けるためのデザイン手法であり、シャープな折り目を多く持つ特徴的な「幾何的スタ

                                        どんな物体も“ステルス”加工できる技術 東大などが開発 形状の再帰性反射を最小化
                                      • npm scripts で rimraf を使わずディレクトリを再帰的に削除する

                                        3 行で Node.js >= v14.14.0 であること rimraf dist は node -e 'fs.rmSync(`dist`, {recursive:true, force:true})' で置き換えられる rimraf dist/*.bundle.js みたいな glob を含むものは置き換えできない 長い説明 npm scripts で不要なキャッシュやビルドの出力ファイルを削除したい場合は rimraf というパッケージを POSIX の rm -rf の代わりに使うことが多いと思います。これは Windows で npm run の実行に使われる コマンドプロンプト (cmd.exe) に rm がないのを始めとした環境依存の問題を避けるためです。 とはいえパッケージなしではディレクトリの再帰的削除もできない、というのはちょっと困るので、v12.10.0 で fs.

                                          npm scripts で rimraf を使わずディレクトリを再帰的に削除する
                                        • type family を使って再帰的 ADT をオープンにする

                                          元ネタは Trees that grow . Haskell では代数的データ型 (ADT) を使ってプログミングに使うデータ構造を定義し,その構造を操作することによりプログラミングを行う. ADT はパターンマッチが容易で,再帰的に定義でき,基本的に閉じた構造になっている.そのため便利な反面,その機能が保守で仇となる場合もある.この問題は古くから知られており,いくつかの解決策も提案されてきた.今回はこのうち,現在 GHC で採用されつつある type family を使った解決方法を紹介する. なお,環境として以下を想定している. The Expression Problemプログラミング,特に Haskell を使用したプログラミングにおいて,データ型は非常に重要な役割を持つ.特に,一部のプログラムにおいては,根幹をなすデータ型がいくつか存在するような場合もある.この場合データ型の扱い

                                            type family を使って再帰的 ADT をオープンにする
                                          • Swiftにおける末尾再帰とCompilerによる最適化を探る

                                            SwiftのCompilerはOSSとして公開されているので、興味のある方はぜひチェックしてください。 github.com また、Swift Compilerのアーキテクチャについては、こちらの記事がとても分かりやすいです。 qiita.com 末尾再帰にしたとして、最適化を無効にしたときと有効にしたときで実行結果が変わってくるのであれば、Compilerの生成物も当然異なっているはずです。 それでは、最適化を無効にしたときと有効にしたときで、上記のどのタイミング(Component)でどのような生成物の違いがあるのか、見ていきます。 各Componentにおける差分 次の内容をsum.swiftとして保存し、生成物の差分を実際に見ていきます。 func sum(_ n: Int, _ res: Int) -> Int { if n == 0 { return res } return

                                              Swiftにおける末尾再帰とCompilerによる最適化を探る
                                            • 再帰 - Qiita

                                              Help us understand the problem. What are the problem?

                                                再帰 - Qiita
                                              • TypeScriptの型で遊ぶ時、再帰制限を(合法的に)突破する - Qiita

                                                TypeScriptの型の再帰は50が上限です。 先日、 @kgtkr さんがTypeScriptの型で遊ぶ時、再帰制限を無効化するという記事で、 その再帰制限を、ソースコードを書き換えることで突破して、型レベル BrainF**k などで遊んでいるのを見ました。 タイトルで合法的と言っておきながら、別にソースコードを書き換えるのが何らかの法に触れる訳ではないのですが、とは言え @kgtkr さんも記事の中で、 当然ですがプロダクトで使うことは想定していません、やめましょう。 と言っている通り、これをプロダクトに採用するわけにはいきません。 というわけで、ソースコード書き換えをせずに再帰制限を突破してやろう、というのがこの記事の趣旨です。 文字列を分割する(再帰制限に引っかかる例) Template literal types がマージされたので、 typescript@next を使えば

                                                  TypeScriptの型で遊ぶ時、再帰制限を(合法的に)突破する - Qiita
                                                • 『幻想再帰のアリュージョニスト』は「ラノベ天狗」をいかに意識したか?

                                                  リンク い(い)きる。 アリュージョニストに○される - い(い)きる。 「幻想再帰のアリュージョニスト」というなろう小説があります。幻想再帰のアリュージョニスト - 小説家になろう作者は「最近」(これがペンネーム)。別作品で既に商業デビューも果たしている実力派作家です。アリス・イン・カレイドスピア 1 (星海社FICTIONS)作者: 最近,あずき出版社/メーカー: 講談社発売日: 2015/07/16メディア: 単行本(ソフトカバー)この商品を含むブログ (10件) を見るこの「アリュージョニスト」自体は書籍化されていませんが、異世界転生俺TUEEEハーレムをベースにしなが 29 users リンク WINDBIRD ラノベ天狗 VS アリュージョニスト作者 - WINDBIRD (たぶん多くの人は全く興味がないと思いますが)おなじみラノベ天狗ことsrpglove氏と、カルト的な人気を

                                                    『幻想再帰のアリュージョニスト』は「ラノベ天狗」をいかに意識したか?
                                                  • TypeScript の型の再帰上限を突破する裏技 - Object.create(null)

                                                    TypeScript 4.1 で再帰的な conditional type の定義に制限がなくなり (ref), 今後ますます再帰的な型定義をする / 触れることが多くなろうかと思います. 一方で TypeScript が型をインスタンス化する際の再帰の上限はそこそこ厳しく, ちょっと複雑なことをするとすぐに頭を打ってしまいます. 困りましたね. ということで裏技を使ってこの再帰上限を突破する方法を紹介します. 実は以前に型レベル Brainfuck インタプリタを実装した時にも使っていたのですが, あまり知られていないようなので改めて. ちなみにこちらの記事のように TypeScript 自体のコードに手を入れたりはしません. 以下使用している TypeScript のバージョンは 4.1.0-dev.20200911 です. 上限を突破する例 まずは実際に再帰的な型定義を行い, 上限を

                                                      TypeScript の型の再帰上限を突破する裏技 - Object.create(null)
                                                    • 再帰型ニューラルネットワークの要約

                                                      皆さん こんにちは、GMOアドマーケティングのS.Rです。 前回は 畳み込みニューラルネットワークの要約を投稿しました。皆さんいかがでしたでしょうか。今回は時系列データ(株価、機械翻訳なと)に一番使われてるモデルの一つ、再帰型ニューラルネットワーク(英語はRecurrent Neural Networkです、以下RNNと記載します)を皆さんへ紹介したいと思います。 機械学習の問題の種類 まずは機械学習の問題の種類を一緒に復習しましょう。機械学習の問題は目標によって主に分類問題と回帰問題に分かれます。 1、分類の問題: 分類対象の特徴と分類を確定した上に分類対象の学習データの学習として各対象の種類を予測する事です。良くある例は乳がん検査、手書き画像の認識、物体認識です。 2、回帰の問題: 分類対象の特徴と分類を確定し連続するデータの予測をすることです。良くある例は物件の値段の予測、オンライン

                                                        再帰型ニューラルネットワークの要約
                                                      • Rust入門を兼ねてプロジェクト・オイラーの問題を解く - 再帰の反復blog

                                                        とりあえず問100まで解くことに決めて始めたのだけど、問題の難易度やプログラムを書く面倒さが速いペースで増加していくので割と早い段階で問題を解くことが優先になって、Rustの機能やライブラリを理解することがおざなりになってしまった。 それでも言語の初歩的な部分についてはそれなりにRustの感覚が得られた気がする。 1. 整数とベクター 大部分の問題は、整数、整数のベクター、整数のベクターのベクター等々だけを使って解ける。 そのため、プログラムを書くときに所有権などのせいで書き方に困ることはあっても、そうした所有権とか生存期間とかの規則が問題を解く上で本質的な障害になることはそんなに無い。 「gotoしかない言語でプログラムを書いていた人がforやwhileだけでプログラムを書く」とか「破壊的変更が普通の言語を使っていた人がデータは基本的に不変な言語を使う」ような感じかも。 ベクターすら使う

                                                          Rust入門を兼ねてプロジェクト・オイラーの問題を解く - 再帰の反復blog
                                                        • 生成AIのデータがインターネットを汚染、基盤モデルを崩壊させる「再帰の呪い」

                                                          ChatGPTなどの生成AI(人工知能)が大量のデータをつくり出す中、フェイクなどによる事件や悪影響が懸念される。さらに、生成AIがつくり出したデータによって生成AIのモデル自体が崩壊する恐れも出てきた。今回は番外編として、この問題を取り上げる。 生成AIの基盤となるのは大規模言語モデル(LLM)や画像などを生成するための拡散モデルである。こういった基盤モデルはインターネット上の膨大なデータを使って学習させる。そのほとんどは人間がつくったデータだ。 だが生成AIの普及により、生成AIがつくった大量のデータがインターネットに日々放出されている。このため今より後の世代のモデルは、人間によるデータだけではなく前の世代のモデルがつくったデータを使って学習することになる。これを繰り返すと、モデルは一体どうなってしまうのだろうか――。 2023年5月から6月にかけて、このテーマに関する研究論文が相次い

                                                            生成AIのデータがインターネットを汚染、基盤モデルを崩壊させる「再帰の呪い」
                                                          • プログラミング言語における再帰の初出はLISPではなかった - Arantium Maestum

                                                            ポール・グレハムの記事の一つにWhat Makes Lisp Different?というものがある: www.paulgraham.com ポール・グレハムらしくよく書かれていて、C言語などと比較した場合のLispの特徴をうまく捉えているように思う。 その中の一つが Recursion. Recursion existed as a mathematical concept before Lisp of course, but Lisp was the first programming language to support it. (It's arguably implicit in making functions first class objects.) こうある通り、私も今まで深く考えたこともなく「プログラミングにおける再帰はLispが由来」と考えていたのだが、前回の記事を書く

                                                              プログラミング言語における再帰の初出はLISPではなかった - Arantium Maestum
                                                            • 10MBのファイルが281TBに膨らむ新型「非再帰的ZIP爆弾」 | スラド セキュリティ

                                                              プログラマー兼エンジニアのDavid Fifield氏が、たった10MBのサイズにも関わらず、展開すると281TBにまで爆発する新しいタイプの「ZIP爆弾」を発表した。 ZIP爆弾は、そのファイル自体は小さいにもかかわらず、展開すると巨大なファイルになるように細工をしたZIPファイルの俗称。小さなファイルを巨大なファイルとして展開させることによりPCのCPU、メモリ、ディスク容量といったリソースを奪うことができる。 通常のZIP爆弾は内側のZIPファイルの中にさらにZIPファイルを作るという再帰的手法で作られているが、それゆえに多くのアンチウイルスソフトで対策されている。Fifield氏が考案した「非再帰的ZIP爆弾」は、再帰のない単一層でより密集したファイルを作成できるのが特徴。 展開後のファイルサイズこそ高効率で作られた再帰的ZIP爆弾にかなわないものの、それでも展開後のサイズを280

                                                              • Linuxコマンドのお勉強 再帰的にパーミッションを変更 - Qiita

                                                                このコマンドだと全てのファイル・ディレクトリが変更されてしまう。 findを使用して再帰的にパーミッションを変更 ディレクトリのみ

                                                                  Linuxコマンドのお勉強 再帰的にパーミッションを変更 - Qiita
                                                                • bit 全探索を「再帰関数」で書く 2 つの流儀 - けんちょんの競プロ精進記録

                                                                  0. はじめに bit 全探索は、世の中で「AtCoder 温室育ちだと弱い」と言われるタイプの問題の代表かもしれません。何も考えずに思考停止して全探索すればよいのですが、ちょっと実装が重たい傾向にあって、書き切るのが大変という感じです。difficulty を見ても ABC-C の中でも高めの傾向です。 ABC 147 C - HonestOrUnkind2 (972) ABC 128 C - Switches (728) ABC 119 C - Synthetic Kadomatsu (1306) ABC 104 C - All Green (1396) bit 全探索の考え方や実装は、以下の記事にまとめてみました。 drken1215.hatenablog.com しかし、全探索アルゴリズムにおいて、より汎用的な方法として再帰関数を用いるというのがあります。むしろ、再帰関数を自在に書

                                                                  • インタビュー:21世紀のサイバネティクス——ユク・ホイ『再帰性と偶然性』をめぐって - Research Network for Philosophy and Technology

                                                                    インタビュー:21世紀のためのサイバネティクス——ユク・ホイ『再帰性と偶然性』をめぐって 出典:E-flux Journal #102(2019年9月) URL = https://www.e-flux.com/journal/102/282271/cybernetics-for-the-twenty-first-century-an-interview-with-philosopher-yuk-hui/ 訳:伊勢康平 新著『再帰性と偶然性』(2019年)のなかで、香港の哲学者ユク・ホイは、再帰性とは単なる機械的反復ではないと主張している。かれは「規範からの不規則な逸脱」に関心をもち、新生気論者〔neovitalist〕とでも言うべき立場を築いている。これは、ロボットには生命がある(あるいはやがて生命をもつだろう)というような、昨今の大衆文化のなかで有力な見方を乗り越えるものだ。「器官学」

                                                                      インタビュー:21世紀のサイバネティクス——ユク・ホイ『再帰性と偶然性』をめぐって - Research Network for Philosophy and Technology
                                                                    • オブジェクト指向におけるVisitorパターンは、F代数によるμ再帰を Church encoding したもの

                                                                      某所で オブジェクト指向 (OOP) における Visitorパターン について話されていたので、自分の関数型プログラミングのメモ用に整理してみたいと思います。 (Twitterで書くには少し長すぎたので、こちらに整理) 2021/01/10 EDIT: Church (Boehm–Berarducci) エンコーディングとVistorパターンについての具体的な事例は、こちらの記事が分かりやすいので、ご参照ください。 Haskell for all: The visitor pattern is essentially the same thing as Church encoding 概要 OOP における Visitor パターンは、関数型プログラミング的に言えば、(パターンマッチする)F代数によるμ再帰を Church encoding したもの。 つまり、 を関数適用して、結果 a

                                                                        オブジェクト指向におけるVisitorパターンは、F代数によるμ再帰を Church encoding したもの
                                                                      • 再帰型ニューラルネットワークの「基礎の基礎」を理解する ~ディープラーニング入門|第3回 - アイマガジン|i Magazine|IS magazine

                                                                        前回は、ディープラーニングの中でも、とくに画像認識で利用される畳み込みネットワークを取り上げた。画像認識はディープラーニングの応用分野として、最も研究が盛んで、適用事例も多いエリアである。しかし、そのほかの分野でもさまざまな形での応用が進められており、そこでは畳み込みネットワーク以外の手法が利用されることも多い。 今回は、それらの中から「再帰型ニューラルネットワーク」と呼ばれる手法を取り上げて解説する。 ある時刻の値は、以前の 時刻の変化の延長上にある 再帰型ニューラルネットワーク(Recurrent Neural Network:以下、RNN)は、ニューラルネットワークを拡張して時系列データを扱えるようにしたものである。ここで言う時系列データとは、ある時間の経過とともに値が変化していくようなデータを指し、店舗の日次売上データやホームページのアクセス数履歴、工場設備のセンサデータなど、多種

                                                                          再帰型ニューラルネットワークの「基礎の基礎」を理解する ~ディープラーニング入門|第3回 - アイマガジン|i Magazine|IS magazine
                                                                        • Rustで有名アルゴリズムに挑戦(11) Rustで再帰を使ってシダを描画しよう

                                                                          Rustの良さの一つがC/C++に匹敵する実行速度です。昨今のスクリプト言語も十分高速なのですが、画像生成など単純な計算が頻出する場面ではRustを使うと有利です。今回は、シダを描画してPNGで保存するプログラムを作ってみましょう。 Rustでシダを描画しPNG形式で保存したところ 画像データの保存について Rustで画像を描画しようと思った場合、いくつかの方法があります。本連載6回目で紹介したように、Bitmap形式の画像データを生成してファイルに保存することもできますし、本連載7回目で紹介したように、imageクレートを使って画像データをPNG形式で保存することもできます。今回は、imageクレートを利用して、画像を描画してみましょう。 「imageクレート」(https://crates.io/crates/image)は、Rustの画像処理ライブラリです。基本的な画像処理の機能を備

                                                                            Rustで有名アルゴリズムに挑戦(11) Rustで再帰を使ってシダを描画しよう
                                                                          • 再帰関数が苦手なエンジニアのための再帰関数入門 - Qiita

                                                                            エンジニアに転職して早2年半。いまだに再帰関数が苦手です。 再帰関数を含むコードレビューがあると「よく分からんけど、動作も良いしテストも書かれてるしヨシ!!approved!!」としてしまったことも...(絶対あかん😇)。 さすがにそれはヤバイと、再帰関数を学び直したのでその結果をまとめてみました。 再帰関数とは? 再帰関数とは、関数内で、自分自身を呼び出す関数です。 この時点で謎ですよね。最初にみたときは「無限ループでは?」って思いました。 以下再帰関数の例として度々あげられる階乗の計算です。 const factorial = (n: number): number => { if (n < 2) { return 1; } return n * factorial(n - 1); }; test('factorial' => { expect(factorial(0)).toBe(

                                                                              再帰関数が苦手なエンジニアのための再帰関数入門 - Qiita
                                                                            • 不動点コンビネータを用いた無名再帰関数の実行まとめ - Qiita

                                                                              諸般の理由で『Pythonのlambda式を用いたラムダ計算の基礎表現』を書いた後にHaskellに触れたところ,無名再帰関数を実行する不動点コンビネータfixがとんでもなく簡単に書けたため,同じ方法で他のプログラミング言語でもできないか試したところ,これまたあっさりできたので,まとめメモ的に新しく記事にした. このような内容がQiitaや書籍,ネット上に星の数の更に星の数乗ほどあることは承知しているが,この手の話はYコンビネータが大きな割合を占めており(実際,元記事でも取り上げている),関心のある人々の数多ある参考資料のひとつ程度に捉えてもらえると幸いである.ツッコミ,編集リクエスト歓迎. 不動点コンビネータの定義 不動点コンビネータとは,$f(g(f))=g(f)$が成り立つ関数$g$を指す.この記事では,Haskellの呼称であるfixを不動点コンビネータの関数名とする. Haske

                                                                                不動点コンビネータを用いた無名再帰関数の実行まとめ - Qiita
                                                                              • 関数のカリー化って何だ? JavaScriptの関数の使い方をマスターできる解説書が発売/ECMAScript 2021に対応。関数定義の書き方からクロージャや再帰の応用までカバー【Book Watch/ニュース】

                                                                                  関数のカリー化って何だ? JavaScriptの関数の使い方をマスターできる解説書が発売/ECMAScript 2021に対応。関数定義の書き方からクロージャや再帰の応用までカバー【Book Watch/ニュース】
                                                                                • 不動点コンビネータで無名再帰を作る流れをおさらい - Qiita

                                                                                  どうも、趣味で関数型言語を書いている者です。 長らく関数型言語やってなかったら無名再帰を忘れかけていたので、おさらいがてら不動点コンビネータで無名再帰を作る流れを書き下します。 以下、Haskell の文法で書かれたコードをもとに説明していきます。 無名再帰とは? まずはモチベーションの確認から。 通常、再帰関数は、 といったように、関数定義の中で自分自身を呼ぶことで再帰処理を記述できます。 この例では、 sum (x:xs) = x + sum xs の部分で自分自身を呼んでいますね。 では、 関数に名前を付けることができない (無名関数しかない) 関数定義の中で自分自身を呼ぶことができない というような制限プレイの中で再帰をしたくなったらどうすればいいでしょうか? そんな要望に応えるために人類は 無名再帰 という方法を編み出しました。その名の通り、関数名に依らない再帰処理の方法です。

                                                                                    不動点コンビネータで無名再帰を作る流れをおさらい - Qiita

                                                                                  新着記事