ホームページ コンピューターのチュートリアル コンピュータ知識 Javaの再帰アルゴリズムについて詳しく皆さんに解説していただきたいと思います。

Javaの再帰アルゴリズムについて詳しく皆さんに解説していただきたいと思います。

Jan 07, 2024 pm 12:14 PM
JAの再帰アルゴリズム Javaの再帰アルゴリズムについて詳しく教えていただきたいです。 Javaで再帰的メソッドを使用して重複せずにn個の数値を取得する

Javaの再帰アルゴリズムについて詳しく教えていただきたいです

パブリック クラス テスト{

public static int getResult(int パラメータ) {

if (パラメータ == 0) { 結果を返します。 } それ以外 { 結果 *= パラメータ; return recursiveFunction(パラメータ - 1, 結果); }

戻り番号;

}

public static void main(String[] args) { //ここにコードを書きます }

int result = result(5);

System.out.println(結果);

}

}

その実行原理は次のとおりです:

result(5) まず、パラメータが1以下かどうかを判定する関数本体を入力しますが、このときパラメータは5で条件は成立しませんので、parameter*result(parameter-1)を実行します。 、つまり 5 * result(5-1)、プログラムを繰り返し実行します...

5*結果(5-1)

4*結果(4-1)

3*結果(3-1)

2 * result(2 - 1) この時点で、パラメータは 1 に等しく、条件を満たしているため、関数は 1 を返し、レイヤーごとに返します。今すぐ:###

結果(1) =1

2*結果(1)=2*1=2

3*結果(2)=3*2=6

4*結果(3)=4*6=24

5*結果(4)=5*24=120

Java の再帰的メソッドを使用して、n 個の数値を重複なく完全に配置します n 3

プログラムは次のとおりです。入力形式は次のとおりです。

5

3 1 2 1 2 は、最初の行が数字であることを意味し、次に入力する数字の数を示します。 2 行目には、並べ替える数値を表す n 個の数値が含まれています。入力では、並べ替える数値がすべて非負の数値であると想定しています。

java.io.ファイルをインポート;

import java.io.FileNotFoundException;

import java.util.Arrays;

import java.util.Scanner;

パブリック クラス メイン {

静的最終 int maxn = 1000;

int n; //配列要素の数

int[] a; // 配列

boolean[] used; // 要素が再帰プロセス中に使用されたかどうかをマークするために使用される補助変数、used[i] は i 番目の要素が使用されたかどうかを示します

int[] cur; //現在の配置番号を保存

// 配置全体を重複せずに再帰的に印刷し、現在 idx 位置まで印刷します

void print_comb(int idx) {

idx == n の場合、最後の要素が走査され、cur を出力できることを意味します。

for(int i = 0; i if(i > 0) System.out.print(" ");

System.out.print(cur[i]);

}

System.out.println();

}

int last = -1; // 重複を避けるために、last 変数を使用して最後の検索の値を記録します

for(int i = 0; i if(used[i]) 続行;

if(last == -1 || a[i] != last) { // 現在の数値が繰り返されず、使用されていない場合にのみ、再帰が続行されます

last = a[i];

cur[idx] = a[i];

// バックトラッキング方法

used[i] = true;

print_comb(idx 1);

used[i] = false;

}

}

}

public void go() が FileNotFoundException をスローする { // メソッド本体を実装する }

{

Scanner in = new Scanner(new File("data.in")); 構文は、in という名前の Scanner オブジェクトを作成し、data.in という名前のファイルから入力を読み取るために使用します。

//データを読み取り、並べ替えます

n = in.nextInt();

a = 新しい int[n];

for (int i = 0; i Arrays.sort(a);

//補助変数を初期化し、重複のない完全な配置を開始します

cur = 新しい int[n];

used = 新しいブール値[n];

for(int i = 0; i print_comb(0);

in.close();

}

public static void main(String[] args) throws FileNotFoundException { これは Java プログラムの主要なメソッドであり、プログラム エントリを開始するために使用されます。このメソッドでは、ファイルの読み取り、データの処理などのいくつかの操作を実行できます。 このうち、throws FileNotFoundException は、実行中にファイルが見つからない例外が発生する可能性があることを示しており、この例外が発生した場合、プログラムは FileNotFoundException 例外をスローします。 このメソッドでは、ファイルの読み取りと例外処理を処理する特定のコード ロジックを作成できます。

new Main().go();

}

}客観的に言えば、非再帰的かつ非繰り返しの完全な置換は比較的単純で効率的です。

Java における再帰の役割は何ですか?再帰を使用する理由

あなたの 2 つの質問は、実際には 1 つの質問ですよね?

再帰の役割: 再帰アルゴリズムは、再帰によって定義されるいくつかの問題を解決できます。

まず第一に、再帰定義の問題が何であるかを理解する必要があります。簡単に言うと、再帰的に定義された問題は、同じ構造でサイズが小さい小さな問題を含む大きな問題です。

たとえば、n 階乗の定義は次のように理解できます:

n!= n*(n-1)!

上記の分析から、(n-1)! は n! よりも小さい問題であると結論付けるのは難しくありません。この方法に従って問題を継続的に分解することにより、いくつかの基本的な既知のデータを得ることができます。次に、逆導出を通じて、最終結果を得ることができます。

n の階乗アルゴリズムは次のとおりです:

private static int jieCheng(int n) { これは階乗を計算する方法であり、パラメーター n は計算される値を表します。詳細な説明は次のとおりです。 - 「プライベート」とは、メソッドが現在のクラスでのみ表示され、他のクラスからアクセスできないことを意味します。 - 「静的」は、メソッドが静的メソッドであり、オブジェクトをインスタンス化せずにクラス名を通じて直接呼び出すことができることを意味します。 - 「int」は、メソッドが結果として整数値を返すことを意味します。 - 「jieCheng」はメソッドの名前で、必要に応じて名前を付けることができます。

if(n == 1)

1を返す;

###それ以外 {###

n*jieCheng(n-1) を返す;

}

}

さらに、バイナリ ツリーの定義も再帰的です。つまり、多くのバイナリ ツリー操作が再帰によって実装されます。

再帰を使用すると、プログラムが非常に簡潔になります。

Java での再帰的アプリケーション! f20 1 f21 4 fn 2 2 fn 1 fnwhere

1

2

3

4

5

6

###7###

8

9

10

11

12

13

14

15

16

17

パブリッククラステスト {

publicstaticintf(intn){

if(n==20){

return1;

}エルセイフ(n==21){

戻り4;

}elseif(n

returnf(n 2)-2*f(n 1);

###}それ以外{###

return2*f(n-1) f(n-2);

}

}

public static void main(String[] args) {

System.out.println(f(10)); //f(10)の値を出力します

}

}

テスト済みです。main 関数に f(n) を入力します (n は手動で調整されたパラメーターです)。対応する出力結果が得られます。

以上がJavaの再帰アルゴリズムについて詳しく皆さんに解説していただきたいと思います。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Steam Cloudエラーを修正する方法は?これらの方法を試してください Steam Cloudエラーを修正する方法は?これらの方法を試してください Apr 04, 2025 am 01:51 AM

Steam Cloudエラーは、多くの理由によって引き起こされる可能性があります。ゲームをスムーズにプレイするには、ゲームを開始する前にこのエラーを削除するためにいくつかの対策を講じる必要があります。 PHP.CNソフトウェアは、この投稿でより有用な情報と同様に、いくつかの最良の方法を紹介します。

PC App Storeマルウェアを削除します - あなたのための完全なガイド! PC App Storeマルウェアを削除します - あなたのための完全なガイド! Apr 04, 2025 am 01:41 AM

コンピューターにPC App Storeというプログラムがあり、意図的にインストールしていない場合は、PCがマルウェアに感染する可能性があります。 PHP.CNからのこの投稿では、PC App Storeマルウェアを削除する方法を紹介します。

FixDisk Windows7:Windows7のエラーについてハードディスクを確認してください FixDisk Windows7:Windows7のエラーについてハードディスクを確認してください Apr 14, 2025 am 12:40 AM

ハードドライブの遭遇の問題が疑われる場合は、Windows 7のエラーのドライブを確認できます。このPHP.CN投稿では、FixDisk Windows 7について説明します。ガイドに従って、Windows 7のエラーのハードドライブを確認できます。

グラフィックスドライバーをインストールした後のブラックスクリーンの努力の修正 グラフィックスドライバーをインストールした後のブラックスクリーンの努力の修正 Apr 15, 2025 am 12:11 AM

Windows 10/11にNvidiaドライバーのようなグラフィックドライバーをインストールした後、黒い画面に遭遇したことがありますか? PHP.CNからのこの投稿では、NVIDIAドライバーアップデートブラックスクリーンのソリューションを試す価値のあるいくつかの価値を見つけることができます。

コア分離はew_usbccgpfilter.sysによってブロックされていますか?ここに修正があります! コア分離はew_usbccgpfilter.sysによってブロックされていますか?ここに修正があります! Apr 13, 2025 am 12:47 AM

多くのSurfaceBookユーザーは、Windows 11/10の「ew_usbccgpfilter.sys」の問題を満たしていると報告しています。 PHP.CNからのこの投稿は、迷惑な問題を修正するのに役立ちます。あなたの読書を続けてください。

hacktool:win64/explorerpatcher!mtb-削除する方法は? hacktool:win64/explorerpatcher!mtb-削除する方法は? Apr 04, 2025 am 01:23 AM

ExplorerPatcherは、Windows 11のスタートメニュー、タスクバー、ファイルエクスプローラーなどをカスタマイズできるオープンソースポータブル実行可能ファイルです。ただし、多くのユーザーは、HackTool:Win64/ExplorerPatcher!MTBについてこのトロイの木馬警告を受け取ります。なぜそれが起こるのですか

Windows X-Lite Optimum 11 23H2 Home/ProをISO経由でインストールする方法 Windows X-Lite Optimum 11 23H2 Home/ProをISO経由でインストールする方法 Apr 09, 2025 am 12:49 AM

Windows X-Lite Optimum 11 23H2 HomeまたはOptimum 11 Proは、Windows 11 23H2に基づいたカスタムライトシステムが必要な場合にオプションになる可能性があります。読み続け、Php.cnは最適な11 23H2 ISOをダウンロードし、PCにプロまたはホームをインストールする方法を示します。

Win 11 Builds 22621.3078および22631.3078(KB5034204)リリース Win 11 Builds 22621.3078および22631.3078(KB5034204)リリース Apr 05, 2025 am 01:35 AM

Windows 11 KB5034204の新しい改善とバグの修正を知りたいですか?デバイスでWindows 11 KB5034204を取得する方法は?この投稿では、PHP.CNソフトウェアが知りたい情報を紹介します。

See all articles