일반적인 JS 알고리즘의 축적, 반복, 소진 및 재귀 구현(코드 포함)
이번에는 누적, 반복, 소진 및 재귀에 대한 일반적인 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; }
의 계승입니다. 일반 형식:
Accumulation: V +=e;
Accumulation: v*=e;
V는 축적과 축적을 나타내고, e는 축적/축적 항을 나타냅니다.
알고리즘 핵심 사항:(1) 초기화
v 및 e 초기화
accumulation: v = 0;
Accumulation: v = 1; 누적/곱셈 항이 더 복잡한 경우 여러 개로 분해될 수 있습니다. 하위 항은 별도로 초기화됩니다. 예를 들어, pi를 계산하는 문제에서 누적 항은 기호, 분자, 분모의 세 부분으로 분해됩니다.
(2) 루프의 제어 조건
하나는 바운스 거리 계산 문제, 시퀀스의 처음 20개 항목의 합을 계산하는 문제,
횟수는 고정되어 있습니다. 횟수는 고정되어 있지 않지만 특정 조건이 충족되어야 합니다. 계산 파이 문제에서는 마지막 항의 절대값이 10-6보다 작아야 합니다.
(3) 누적/곱항의 변화를 결정합니다
예를 들어 수열의 처음 20개 항의 합은 현재 분자와 분모의 합을 다음 분모로 사용하고 현재 분모를 다음 분모로 사용합니다. 분자.
또 다른 예는 파이를 구하는 문제인데, 부호를 거꾸로 하고 분모에 2를 더한 후 다음 항을 찾는 문제입니다.
Iteration
반복 방법은 던지는 방법이기도 합니다
규칙: 원하는 결과를 얻을 때까지 계속해서 이전 값을 사용하여 새 값을 얻을 수 있습니다. 반복 문제 해결 방법
1. 반복 변수(기존 값) 찾기
2. 반복 간의 관계 결정
3. 원하는 결과가 무엇인지 파악(루프 종료 조건)
( 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>
Recursion
수학적 규칙 찾기: 원하는 결과가 나올 때까지 공식을 통해 다음 항목의 값을 계산합니다For 예: 토끼가 새끼를 낳습니다: 처음 두 항목을 통해 다음 항목을 얻습니다
<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>
재귀는 순방향과 역방향으로 나눌 수 있습니다.
Exhaustion
문제에 직면했는데 더 나은 해결책을 찾을 수 없을 때(수학적 공식이나 규칙을 찾을 수 없을 때) "가장 어리석은" 방법을 사용하고 컴퓨터의 빠른 계산 속도를 활용하세요 , 모든 가능성을 나열하고 얻고 싶은 결과를 기록하세요
<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>
완전 방법의 특징은 알고리즘이 간단하고 해당 프로그램도 간단하지만 계산량이 많은 경우가 많습니다. 그러나 컴퓨터의 장점은 빠른 계산 속도이기 때문에 이 알고리즘은 장점을 극대화하고 단점을 피할 수 있으며 종종 좋은 결과를 얻을 수 있습니다.
사례: 세 자리 숫자가 있고 일의 자리가 백의 자리보다 크고 백의 자리가 십의 자리보다 크고 각 자리의 합이 각 자리의 곱셈의 곱과 같습니다 , 이 세 자리 숫자를 찾으세요
Recursion
소위 재귀는 함수 내부에서 자신을 호출하는 것입니다. 예를 들어 팩토리얼 문제를 찾으려면 팩트 함수 내부에서 팩트 함수를 호출해야 합니다.
<script> /*计算n的阶乘*/ function fact(n){ if(1== n){ return 1 } return n*fact(n-1); } alert(fact(5)); </script>
재귀 알고리즘은 기존 사고 방식에 따라 함수 호출이 한 번에 한 레이어씩 중첩되어 이해하기가 매우 복잡합니다. 레이어별로 반환하면 재귀를 이해하기 위해 마음을 바꿀 수도 있습니다.
이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!
추천 도서:
vux-ui를 사용하여 양식 유효성 검사를 사용자 정의하는 방법
위 내용은 일반적인 JS 알고리즘의 축적, 반복, 소진 및 재귀 구현(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











WebSocket 및 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 소개: 지속적인 기술 개발로 음성 인식 기술은 인공 지능 분야의 중요한 부분이 되었습니다. WebSocket과 JavaScript를 기반으로 한 온라인 음성 인식 시스템은 낮은 대기 시간, 실시간, 크로스 플랫폼이라는 특징을 갖고 있으며 널리 사용되는 솔루션이 되었습니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법을 소개합니다.

WebSocket과 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 서론: 인터넷 기술의 급속한 발전과 함께 실시간 모니터링 시스템이 다양한 분야에서 널리 활용되고 있다. 실시간 모니터링을 구현하는 핵심 기술 중 하나는 WebSocket과 JavaScript의 조합입니다. 이 기사에서는 실시간 모니터링 시스템에서 WebSocket 및 JavaScript의 적용을 소개하고 코드 예제를 제공하며 구현 원칙을 자세히 설명합니다. 1. 웹소켓 기술

JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 소개: 인터넷의 대중화와 기술의 발전으로 점점 더 많은 레스토랑에서 온라인 주문 서비스를 제공하기 시작했습니다. 실시간 온라인 주문 시스템을 구현하기 위해 JavaScript 및 WebSocket 기술을 사용할 수 있습니다. WebSocket은 TCP 프로토콜을 기반으로 하는 전이중 통신 프로토콜로 클라이언트와 서버 간의 실시간 양방향 통신을 실현할 수 있습니다. 실시간 온라인 주문 시스템에서는 사용자가 요리를 선택하고 주문을 하면

WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 오늘날의 디지털 시대에는 점점 더 많은 기업과 서비스에서 온라인 예약 기능을 제공해야 합니다. 효율적인 실시간 온라인 예약 시스템을 구현하는 것이 중요합니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. WebSocket이란 무엇입니까? WebSocket은 단일 TCP 연결의 전이중 방식입니다.

JavaScript 및 WebSocket: 효율적인 실시간 일기 예보 시스템 구축 소개: 오늘날 일기 예보의 정확성은 일상 생활과 의사 결정에 매우 중요합니다. 기술이 발전함에 따라 우리는 날씨 데이터를 실시간으로 획득함으로써 보다 정확하고 신뢰할 수 있는 일기예보를 제공할 수 있습니다. 이 기사에서는 JavaScript 및 WebSocket 기술을 사용하여 효율적인 실시간 일기 예보 시스템을 구축하는 방법을 알아봅니다. 이 문서에서는 특정 코드 예제를 통해 구현 프로세스를 보여줍니다. 우리

사용법: JavaScript에서 insertBefore() 메서드는 DOM 트리에 새 노드를 삽입하는 데 사용됩니다. 이 방법에는 삽입할 새 노드와 참조 노드(즉, 새 노드가 삽입될 노드)라는 두 가지 매개 변수가 필요합니다.

JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법, 특정 코드 예제가 필요합니다. 서문: 웹 개발에서는 서버와의 데이터 상호 작용이 종종 포함됩니다. 서버와 통신할 때 반환된 HTTP 상태 코드를 가져와서 작업의 성공 여부를 확인하고 다양한 상태 코드에 따라 해당 처리를 수행해야 하는 경우가 많습니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법과 몇 가지 실용적인 코드 예제를 제공합니다. XMLHttpRequest 사용

JavaScript는 웹 개발에 널리 사용되는 프로그래밍 언어인 반면 WebSocket은 실시간 통신에 사용되는 네트워크 프로토콜입니다. 두 가지의 강력한 기능을 결합하면 효율적인 실시간 영상 처리 시스템을 만들 수 있습니다. 이 기사에서는 JavaScript와 WebSocket을 사용하여 이 시스템을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 첫째, 실시간 영상처리 시스템의 요구사항과 목표를 명확히 할 필요가 있다. 실시간 이미지 데이터를 수집할 수 있는 카메라 장치가 있다고 가정해 보겠습니다.
