n
배열의 숫자 (정수라고 가정 할 수 없음)가 주어지면 size의 모든 하위 집합의 곱을 계산하고 싶습니다 n-1
.
숫자가 0이 아닌 한 모든 숫자를 곱한 다음 각 숫자로 차례로 나눔으로써이 작업을 수행 할 수 있습니다. 그러나 부서없이 얼마나 빨리 할 수 있습니까?
나누기를 허용하지 않으면 n-1 크기의 모든 부분 집합의 곱을 계산하는 데 필요한 최소 산술 연산 (예 : 곱셈 및 덧셈)은 얼마입니까?
분명히 (n-1)*n
곱셈으로 할 수 있습니다 .
명확히하기 위해 출력은 n
다른 제품이며 허용되는 메모리에 대한 읽기 및 쓰기 이외의 유일한 작업은 곱셈, 덧셈 및 뺄셈입니다.
예
입력은 세 개의 숫자가있는 경우 2,3,5
, 출력은 세 개의 숫자이며 15 = 3*5
, 10 = 2*5
그리고 6 = 2*3
.
승리 기준
답변은 코드에서 사용할 산술 연산 수에 대한 정확한 공식을 제공해야합니다 n
. 인생을 단순하게 만들기 위해 n = 1000
점수를 판단하기 위해 공식에 연결 합니다. 낮을수록 좋습니다.
코드에 대한 정확한 공식을 생성하기가 너무 어렵다면 코드를 실행 n = 1000
하여 코드의 산술 연산을 계산할 수 있습니다. 그러나 정확한 공식이 가장 좋습니다.
n=1000
쉽게 비교할 수 있도록 점수를 답에 추가해야합니다 .
+
에서 지수 계산? 이 경우 배열 인덱싱도 계산됩니까? (추가 및 역 참조를위한 모든 구문 설탕 때문이다).
(n-1)*n
곱셈 당신 말은 (n-2)*n
바로?