No.1ベストアンサー
- 回答日時:
言葉の問題になっちゃうんですが
再帰関数は、Aと言う関数があるとすれば
A関数の実行途中にA関数を呼び出す記述があり
自分自身を呼びだす事になります。
一般的によくやるのが、ディレクトリーの処理ですね。
No.4
- 回答日時:
「再帰的であれば、必然的に再入可能でもある」
これは必ずしも正しくないんじゃないかという気がするんですけどねえ。
「再入可能」というのは、同一のプログラムを複数同時並行的に実行できることですよね。
再帰的なプログラムは、確かに呼び出す側と呼び出される側とで複数のプログラムを同時に
実行しているように見えます。しかし、「再入可能」という語を使う場合、通常は複数の
実行が非同期的になされることを前提としていると思うのです。No.3さんの回答にある
「オート変数のみ」という条件は、そのために必要なものです。しかし、再帰的なプログラム
の場合、自分自身の呼び出しは一般的に同期をとって行われます。ですので、メモリーの
固定領域を参照していたとしても、動作に全く問題のない再帰的プログラムは可能です。
こうしたものを「再入可能」と呼んでよいのか、個人的には抵抗があります。
No.3
- 回答日時:
> 「したがって再帰的であれば、必然的に再入可能でもある。
」この意味は、その関数が再入可能であるという性質を持っている必要があるということです。簡単に言えばオート変数だけ使って作られている必要があるということです。
再入可能でなければ再帰呼び出しはできません。従って再帰呼び出しをしているということは再入可能です。
ちなみに、A が B を呼び出し、B が A を呼び出すときも再帰呼び出しといいますので、必ずしも自分自身を (直接) 呼び出すわけではありません。
No.2
- 回答日時:
特定の領域のメモリやI/Oポートを使用したプログラム・ルーチンは、マルチタスク環境や割り込みが発生する環境では正しく動作しません。
そこで、このような環境でも正常に動作するように作ったプログラム・ルーチンは再入可能であると言います。
再帰プログラム・ルーチンは、その内部で自分自身を呼び出しますが、これはプログラム・ルーチンの実行中に再度そのプログラム・ルーチンが呼び出されることなので、したがって再帰呼び出し可能なプログラム・ルーチンは再入可能なプログラム・ルーチンであるということが言えます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Windows 10 数年前からWindows10 の Update ができないです。なぜですか? 7 2022/11/09 06:03
- C言語・C++・C# プログラム内から、MIDIファイルの一部分だけを再生する方法 1 2023/02/15 11:08
- ノートパソコン .dllファイルがありませんと表示される 5 2023/04/30 03:03
- デスクトップパソコン 「自動修復でPCを修復できませんでした」と表示されPCが起動しないのですが対処法はありますか? 5 2022/05/13 09:16
- Windows 10 windows11 update の「更新の再開」について初歩的な質問なのですが 1 2022/10/19 00:57
- システム 古いWEBシステム。もう追加プログラムは作れない? それともできる? 6 2022/06/08 13:41
- その他(妊娠・出産・子育て) 産休育休の職場復帰について 現在産休中正社員です。9月出産予定です。職場復帰の時期に悩んでいます。 1 2023/08/17 09:51
- PHP ここで言う空文字の意味とは? 1 2022/08/05 16:27
- 父親・母親 一人暮らしを辞めて実家に帰ったら恥で批判される事ですか? 6 2022/11/19 19:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ステップ数について
-
プログラムの規模を表す単位「k...
-
ステップ数??
-
VB6.0で #の意味
-
ドット絵のようなやつを作るに...
-
ライン数とステップ数の違いに...
-
ubuntuで デイスク/deb/loopと...
-
L2スイッチの管理VLANに...
-
クロック周波数の計算問題について
-
ホストアドレスの0とは
-
hdmiはパラレル?シリアル?
-
パソコンでインターネット接続...
-
社内LANのネットワークトラフィ...
-
磁気ディスクのアクセス時間の...
-
RAIDの種類について
-
100台のPCをLAN接続する時に必...
-
スタック C言語
-
暗号解読について教えてください
-
メインダイアログからの各ダイ...
-
ブラインドタッチができるよう...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ステップ数について
-
プログラムの規模を表す単位「k...
-
ライン数とステップ数の違いに...
-
ステップ数??
-
VB6.0で #の意味
-
STEPについて
-
シェルスクリプトについて
-
ステップ数によるスケジュール
-
「ByRef引数の型が一致しません...
-
if(($j+$i)%7 == 0){ の0の意味...
-
ステップカウントツールが作成...
-
プログラム構造の「再帰的」に...
-
海外リードメールの「NPA」とは?
-
乱数をC言語で
-
Octaveでのオイラー法とルンゲ...
-
Request.Querystringについて
-
メガデモ、4kbの受賞作品 ...
-
三菱 PLC ラダープログラム
-
再帰プログラムって・・・?
-
プログラムから追加したドロッ...
おすすめ情報