一般的な JS アルゴリズムの累積、反復、消尽、再帰の実装 (コード付き)
今回は、累積、反復、消尽、および再帰の一般的な JS アルゴリズムの実装 (コード付き) について説明します。ケースを見てみましょう。
累積と累積
累積:一連のデータを変数に追加します。最後に累積結果が得られます例: 1から100までの数値の累積和を計算します
ボールが高いところから落ちると、そのたびに元の値の半分に戻ります ボールが飛んだ距離を求めます。 10 回目に地面に落ちたとき
<script> var h=100; var s=0; for(var i=0;i<10;i++){ h=h/2; s+=h; } s=s*2+100; </script>
一連のデータを変数に乗算して、累積結果を取得します。 一般的なものは n
var n=100; var result= 1; for(var i=1;i<=n;i++){ result *=i; }
一般形式:
累積: V +=e;
累積: v*=e;
V は累積と累積を表し、e は累積/累積項を表します
アルゴリズム キーポイント:
(1) 初期化
v と e を初期化する
accumulation: v = 0;
Accumulation: v = 1; 累積/積項がより複雑な場合、たとえば、円周率を計算する問題では、累積項は記号、分子、分母の 3 つの部分に分解されます。
(2) ループの制御条件
1つは、バウンス距離を計算する問題、数列の最初の20項目の合計を計算する問題など、固定回数です
の数回は固定されていませんが、特定の条件を満たす必要があります。 計算 円周率問題では、最後の項の絶対値が 10-6 未満であることが必要です。
(3) 累積・積項の変化を求める
例えば、数列の最初の20項の和は、現在の分子と分母の和を次の分母として、現在の分母を次の分母として使用します。分子。
もう 1 つの例は、円周率を求める問題です。これは、符号を反転し、分母に 2 を加えて、次の項を見つけることです。
反復
反復手法は投げ手法でもあります
ルール: 望む結果が得られるまで、古い値を使用して新しい値を取得し続けることができます。 反復問題の解き方
1. 反復変数(古い値)を見つける
2. 望ましい結果が何かを知る(ループを終了する条件)
( 1. ) 最終結果を知るためです
(2) ループの数
<script> /* * 1.接受用户输入的俩个数 * 2.一个函数的到最大公约数 * 3.打印这个最大公约数*/ var num1 = Number(prompt("请输入一个数")); var num2 = Number(prompt("请输入一个数")); var result = GCD(num1,num2); alert(result); /* * 函数的功能:得到最大公约数 * 函数名:GCD * 函数的参数:俩个整数 * 返回值:最大公约数*/ /* * 如果num1<num2则交换,确保num1是交大的 * 计算余数 * 当num1(除数),对num2(被除数)的余数不为0,重复一下步骤 * num2=>num1, * 余数=>num2 * 重新计算余数 * 最终的到最大公约数,也就是num2的值*/ function GCD(num1,num2){ /*return0;*/ if(num1<num2){ var t = num1; num1=num2; num2 = t; } var remainder = num1%num2; while(remainder!= 0){ num1=num2; num2= remainder; remainder=num1%num2; } returnnum2; } </script>
再帰
数学的ルールを見つける: 必要な結果が得られるまで、式を通して次の項目の値を計算しますFor例: ウサギが出産: 最初の 2 つの項目を経て次の項目を取得 <script>
/*
* 一般而言,兔子在出生俩个月后,就有繁殖能力
* 一对兔子每个月能生出一对小兔子来
* 如果所有的兔子都不死,那么一年以后总共有多少对兔子*/
/*
* 月份 0 1 2 3 4 5 6
* 幼崽 1 1 1 2 3 5 8
* 成年 0 0 1 1 2 3 5
* 总共 1 1 2 3 5 8 13
* */
/*
* 接收用户输入的月份
* 计算兔子的对数
* (1)如果经过的月份<2那么兔子的对数为1
* (2)否则用初始的兔子的对数 加上 第一个月的对数为
* 第二个月兔子的个数(an = an-1 +an-2)
* 反复使用这个公式,计算出下个月兔子的个数一直到用户输入的月份为止
* 打印的兔子的对数
* */
/* var month = Number(prompt("输入月份"));
var sum ;
var an =1;
var an_1=1;
var an_2;
if(month < 2){
sum=1;
}else{
sum=2;
for(var i=1; i<month; i++){
sum= an +an_1;
an_1 =an;
an = sum;
}
}
alert(sum);*/
/*
* 思路2*/
var month = Number(prompt("输入月份"));
var rabbit = [1,1];
for(var m=2;m<=month;m++){
rabbit[m]=rabbit[m-1]+rabbit[m-2];
}
alert(rabbit[month]);
</script>
疲労
問題に遭遇し、より良い解決策が見つからない(数式や法則が見つからない)場合は、「最も愚かな」方法を使用し、コンピュータの高速な計算速度を利用してください。 、すべての可能性をリストし、得たい結果を記録します<script>
/*
* 公鸡一值钱5,鸡母一值钱三,鸡仔三值钱一
* 百钱买百鸡,问公鸡,鸡母、鸡仔各几何?
* x y z
* x + y + z = 100
* x*5 + y * 3 + z/3 = 100*/
for(var cock=0;cock<=20;cock++){
for(var hen=0;hen<=33;hen++){
var chihen=100-cock-hen;
if(100== cock*5+ hen*3+ chihen/3){
document.write("公鸡一共:"+cock+"鸡母一共:"+hen+"小鸡一共:"+chihen+"<br>")
}
}
}
</script>
ケース: 3 桁の数字があり、一の位は百の位より大きく、百の位は十の位より大きく、各桁の合計は各桁の乗算の積に等しい, この3桁の数字を見つけてください
再帰
いわゆる再帰とは、関数内で自分自身を呼び出すことです。 たとえば、階乗問題を見つけるには、ファクト関数の中でファクト関数が呼び出されます<script>
/*计算n的阶乘*/
function fact(n){
if(1== n){
return 1
}
return n*fact(n-1);
}
alert(fact(5));
</script>
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
推奨読書:
vux-uiを使用してフォームバリデーションをカスタマイズする方法
以上が一般的な JS アルゴリズムの累積、反復、消尽、再帰の実装 (コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

使用法: JavaScript では、insertBefore() メソッドを使用して、DOM ツリーに新しいノードを挿入します。このメソッドには、挿入される新しいノードと参照ノード (つまり、新しいノードが挿入されるノード) の 2 つのパラメータが必要です。

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

JavaScript は Web 開発で広く使用されているプログラミング言語であり、WebSocket はリアルタイム通信に使用されるネットワーク プロトコルです。 2 つの強力な機能を組み合わせることで、効率的なリアルタイム画像処理システムを構築できます。この記事では、JavaScript と WebSocket を使用してこのシステムを実装する方法と、具体的なコード例を紹介します。まず、リアルタイム画像処理システムの要件と目標を明確にする必要があります。リアルタイムの画像データを収集できるカメラ デバイスがあるとします。
