세 가지 수단과 큰 기반
2514 단어 theweeklychallengeperlpython
주간 도전 157
3주간의 공백기를 마치고 돌아왔습니다!
Challenge , My solution
작업 #1 › 피타고라스 평균
일
정수 집합이 제공됩니다.
세 가지Pythagorean Means, 즉 주어진 정수 세트의 산술 평균, 기하 평균 및 조화 평균을 모두 계산하는 스크립트를 작성하십시오.
내 솔루션
이것은 비교적 간단한 작업입니다. Wikipedia 페이지는 필요한 수식을 제공하며
sum
reduce
및 lambda
함수를 사용하여 필요한 수치를 계산할 수 있습니다. 마지막으로 round
함수를 사용하여 결과를 소수점 첫째 자리까지 인쇄합니다.Perl 코드는 Python 버전과 비슷하지만 List::Utils에서 product() 메서드를 사용합니다. Python의 math.product는 Python 3.8 이상에서만 사용할 수 있습니다.
한 가지 주의할 점은 정수의 합이 0인 경우 조화 평균을 계산할 때 0으로 나누기 오류가 발생할 수 있습니다. 나는 이것을 포착하지 않고 오류를 사용자에게 전달합니다.
예
$ ./ch-1.py 1 3 5 6 9
AM = 4.8, GM = 3.8, HM = 2.8
$ ./ch-1.py 2 4 6 8 10
AM = 6.0, GM = 5.2, HM = 4.4
$ ./ch-1.py 1 2 3 4 5
AM = 3.0, GM = 2.6, HM = 2.2
작업 #2 › 브라질 숫자
일
$n
> 3이라는 숫자가 주어집니다.주어진 숫자가 브라질 숫자인지 알아보는 스크립트를 작성하세요. 양의 정수
N
는 적어도 하나의 자연수B
를 가지며 여기서 1 < B < N-1
는 기수N
에서 B
의 표현이 [the] 같은 숫자를 가집니다.내 솔루션
이것은 흥미로운 작업이었습니다. 단순히 문자와 숫자를 사용하여 숫자를 다른 진법으로 변환할 수 없습니다. 예를 들어 1282는 640진수로 22인데, 같은 진수인 639는 어떻게 표현할까요?
이 작업에서는 숫자 자체의 자릿수가 다르더라도 동일한 자릿수를 갖는 값을 고려했습니다. 예를 들어, 925는 36진수로 (25)(25)로 표현됩니다.
이 작업의 핵심은 10진법의 숫자
n
를 내가 b
라고 부르는 지정된 염기로 변환하는 것입니다. 함수 이름은 same_digits
입니다. 나는 n
와 b
의 계수(나머지)를 취하고 이 값을 d
로 만듭니다. 그런 다음 정수 나누기를 수행하고 n % b
가 d
임을 비교하는 이 프로세스를 반복합니다. 숫자가 같지 않으면 False
를, 모두 같으면 True
를 반환합니다.그런 다음 2에서
n - 2
까지 루프를 만들고 각 염기에 대해 same_digits
함수를 호출하기만 하면 됩니다. 일치하는 항목이 있으면 1
(및 기본)을 인쇄하고 그렇지 않으면 0
를 인쇄합니다.Perl 코드는 Python 코드의 음역입니다.
예
$ ./ch-2.py 6
0
$ ./ch-2.py 7
1 (base 2)
$ ./ch-2.py 8
1 (base 3)
Reference
이 문제에 관하여(세 가지 수단과 큰 기반), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/simongreennet/three-means-and-big-bases-3o2f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)