자바 스크립트에서 루프없이 범위 합계 만들기

S. 고 스와미

루프를 사용하지 않고 자바 스크립트에서 범위의 합계를 만들 수 있습니까? 이것은 코드의 속도를 높이기위한 것입니다. 예를 들면 :

자바 스크립트 범위 합계 :

#!/usr/bin/env js60

var j = 0, k = 100000000 + 1
for(i = 0 ; i < k ; ++i) { j += i }
console.log(j)

루비 범위 합계 :

#!/usr/bin/env ruby

puts (1..100_000_000_000_000_000_000_000_000_000_000_000).sum

벤치 마크 :

  1. 합계의 자바 스크립트 범위 :
┌┄┄[sourav::archlinux]┈[/tmp]
└──╼⮚ time js60 p.js 
5000000050000000

real    0m0.531s
user    0m0.519s
sys 0m0.011s
┌┄┄[sourav::archlinux]┈[/tmp]
└──╼⮚ time js60 p.js 
5000000050000000

real    0m0.514s
user    0m0.502s
sys 0m0.012s
┌┄┄[sourav::archlinux]┈[/tmp]
└──╼⮚ time js60 p.js 
5000000050000000

real    0m0.558s
user    0m0.531s
sys 0m0.027s
┌┄┄[sourav::archlinux]┈[/tmp]
└──╼⮚ 
  1. 루비:
┌┄┄[sourav::archlinux]┈[/tmp]
└──╼⮚ time ruby q.rb 
5000000000000000000000000000000000050000000000000000000000000000000000

real    0m0.105s
user    0m0.088s
sys 0m0.017s
┌┄┄[sourav::archlinux]┈[/tmp]
└──╼⮚ time ruby q.rb 
5000000000000000000000000000000000050000000000000000000000000000000000

real    0m0.122s
user    0m0.121s
sys 0m0.000s
┌┄┄[sourav::archlinux]┈[/tmp]
└──╼⮚ time ruby q.rb 
5000000000000000000000000000000000050000000000000000000000000000000000

real    0m0.118s
user    0m0.094s
sys 0m0.023s
┌┄┄[sourav::archlinux]┈[/tmp]
└──╼⮚ 

JS에서 Ruby처럼 빠르게 작업하려면 어떻게해야합니까?

확실한 성능

원하는 경우 알고리즘을 사용하여 범위의 합계를 계산할 수 있습니다.

1 + 2 + 3 + 4 + ... + (x - 1) + x

다음과 같다

x * (x + 1) / 2

// Look at the result in the browser console, not the snippet console
const sum = (n) => (n * (n + 1n)) / 2n;
console.log(
  sum(
    100_000_000_000_000_000_000_000_000_000_000_000n
  )
);

이것은 Ruby가하는 것과 같은 종류의 일이라고 확신합니다. 모든 숫자를 개별적으로 계산하지 않고 합산 알고리즘을 사용합니다.

BigInt 100_000_000_000_000_000_000_000_000_000_000_000가 너무 커서 Javascript에서 number.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

순수한 자바 스크립트 범위 슬라이더 컨트롤 만들기

분류에서Dev

자바 스크립트에서 동적 테이블 만들기

분류에서Dev

범위 사이의 if 루프를위한 자바 스크립트

분류에서Dev

자바 스크립트 루프-변수 이름 만들기

분류에서Dev

숫자 형식이 혼합 된 범위 집합에서 DataFrame 만들기

분류에서Dev

루프에서 명명 된 자바 스크립트 개체 만들기

분류에서Dev

MSBuild에서 자바 스크립트 단위 테스트 코드 범위 통합

분류에서Dev

자바 스크립트에서 숫자 범위를 기반으로 이미지 표시

분류에서Dev

자바에서 파이썬 스크립트를 호출하기 위해 자이 썬이 필요합니까?

분류에서Dev

자바 스크립트 IE의 문자열에서 하위 배열 만들기

분류에서Dev

Regex에서 욕심이없는 문자 범위 만들기

분류에서Dev

자바 스크립트 범위 /이

분류에서Dev

자바 스크립트는 텍스트 "깜박임"효과를 위해 루프에서 div를 숨기고 표시합니다.

분류에서Dev

자바 스크립트에서 카운트 업 타이머 만들기

분류에서Dev

자바 스크립트에서 고정 길이 대기열 배열 만들기

분류에서Dev

자바 스크립트에서 타임 라인으로 그래프 만들기

분류에서Dev

자바 스크립트에서 페이지로 이동 만들기

분류에서Dev

자바 스크립트 중첩 async.each 루프에서 벗어나지 만 메인 루프는 계속

분류에서Dev

자바 스크립트에서 재귀 적으로 테이블 만들기

분류에서Dev

자바 스크립트에서 이미지로 비디오 만들기

분류에서Dev

자바 스크립트에서 줄이기를 사용하여 배열의 변수에 대한 합계

분류에서Dev

루비 변수에서 카운트 다운하기 위해 자바 스크립트 타이머를 어떻게 통합합니까?

분류에서Dev

자바 스크립트에서 배열 루프에 대한 비동기 함수 만들기?

분류에서Dev

자바 (8) 기능에서 요청 범위 콩 만들기

분류에서Dev

자바 스크립트 : .addEventlistener () 범위 밖에서 클릭 이벤트에 의해 생성 된 변수에 액세스합니다.

분류에서Dev

범위에서 누락 된 번호 찾기-자바 스크립트 문제

분류에서Dev

범위에서 누락 된 번호 찾기-자바 스크립트 문제

분류에서Dev

속기 자바 스크립트? vars를 만들기 위해?

분류에서Dev

속기 자바 스크립트? vars를 만들기 위해?

Related 관련 기사

  1. 1

    순수한 자바 스크립트 범위 슬라이더 컨트롤 만들기

  2. 2

    자바 스크립트에서 동적 테이블 만들기

  3. 3

    범위 사이의 if 루프를위한 자바 스크립트

  4. 4

    자바 스크립트 루프-변수 이름 만들기

  5. 5

    숫자 형식이 혼합 된 범위 집합에서 DataFrame 만들기

  6. 6

    루프에서 명명 된 자바 스크립트 개체 만들기

  7. 7

    MSBuild에서 자바 스크립트 단위 테스트 코드 범위 통합

  8. 8

    자바 스크립트에서 숫자 범위를 기반으로 이미지 표시

  9. 9

    자바에서 파이썬 스크립트를 호출하기 위해 자이 썬이 필요합니까?

  10. 10

    자바 스크립트 IE의 문자열에서 하위 배열 만들기

  11. 11

    Regex에서 욕심이없는 문자 범위 만들기

  12. 12

    자바 스크립트 범위 /이

  13. 13

    자바 스크립트는 텍스트 "깜박임"효과를 위해 루프에서 div를 숨기고 표시합니다.

  14. 14

    자바 스크립트에서 카운트 업 타이머 만들기

  15. 15

    자바 스크립트에서 고정 길이 대기열 배열 만들기

  16. 16

    자바 스크립트에서 타임 라인으로 그래프 만들기

  17. 17

    자바 스크립트에서 페이지로 이동 만들기

  18. 18

    자바 스크립트 중첩 async.each 루프에서 벗어나지 만 메인 루프는 계속

  19. 19

    자바 스크립트에서 재귀 적으로 테이블 만들기

  20. 20

    자바 스크립트에서 이미지로 비디오 만들기

  21. 21

    자바 스크립트에서 줄이기를 사용하여 배열의 변수에 대한 합계

  22. 22

    루비 변수에서 카운트 다운하기 위해 자바 스크립트 타이머를 어떻게 통합합니까?

  23. 23

    자바 스크립트에서 배열 루프에 대한 비동기 함수 만들기?

  24. 24

    자바 (8) 기능에서 요청 범위 콩 만들기

  25. 25

    자바 스크립트 : .addEventlistener () 범위 밖에서 클릭 이벤트에 의해 생성 된 변수에 액세스합니다.

  26. 26

    범위에서 누락 된 번호 찾기-자바 스크립트 문제

  27. 27

    범위에서 누락 된 번호 찾기-자바 스크립트 문제

  28. 28

    속기 자바 스크립트? vars를 만들기 위해?

  29. 29

    속기 자바 스크립트? vars를 만들기 위해?

뜨겁다태그

보관