n과 m 사이의 i에 대한 모든 i²의 합을 계산하는 방법은 무엇입니까?

n과 m 사이의 i에 대한 모든 i²의 합을 계산하는 방법은 무엇입니까?

n두 값 사이의 정수 제곱을 합산하는 스크립트를 어떻게 작성할 수 있습니까 ? and m, 즉 모든 ²의 합 iwhere ifrom nto m?

답변1

한 가지 방법은 다음과 같습니다.

#! /bin/sh
n=$1
m=$2
# Reference: http://math.stackexchange.com/q/48080
sum=$(( (m * (m + 1) * (2 * m + 1) - (n - 1) * n * (2 * n - 1)) / 6 ))
echo $sum

결과:

./sum 3 7
135

답변2

상당히기초적인방법:

#!/bin/bash
sum=0                      # initialise sum to zero
for i in $(seq $1 $2); do  # iterate from n to m
    sum=$((sum + i * i))   # add i² to sum
done
echo $sum                  # print sum

부르다:

./sum.sh n m

루프를 작성하는 다른 방법도 있습니다.이봐.

답변3

하스켈을 사용하면 다음과 같은 일을 할 수 있습니다:

ghc -e 'sum [i*i | i <- [3..7]]'

또는 bash 스크립트 형식으로:

#!/bin/bash
ghc -e "sum [i*i | i <- [$1..$2]]"

관련 정보