나는 2 개의 정수를 취하여 비트 곱을 반환하는 함수를 작성해야하는 과제를 가지고있다. 비트 곱은이 두 숫자 사이의 모든 숫자의 비트 합계 (&
)와 같습니다. 예를 들어루비 비트 제품
: 251
및 253
의 비트 제품은 다음과 같습니다
irb(main):164:0> 251 & 252
=> 248
irb(main):165:0> 252 & 253
=> 252
irb(main):166:0> 248 & 252
=> 248 # this a bitwise & of these two between 251 & 253
내 기능 :
def solution(m,n)
(m..n).to_a.inject{|sum, x| sum &= x}
end
테스트 :
irb(main):160:0> (251..253).to_a.inject{|sum, x| sum &= x}
=> 248 #same result
프로그램의 평가 :
정확성 100 %
성능
사람이이 기능의 성능을 무엇을 설명시겠습니까 0 %? 미리 감사드립니다!
편집
이후 성능 당신은, 예를 들어, 정말 큰 입력을위한 기능의 분석을 제공하고/더/더 효율적인 솔루션을 제안 비판 할 수 있습니다, 여기에 정의되지?
p.s. 의견 얘들 아, 그 권고를 따를 것입니다!
당신이 평가하기 위해 사용하고있는 : 그것은 당신이 (설치
show-source Range#inject
에pry
입력을 시작) 쉽게 보석pry
및pry-doc
을 사용하여 조회 할 수 있습니다, 그것은 C 방법이고 그 목적을 위해 바로 여기에 사용되는, 확률이 낮다 당신의 코드? – Thermatix@ user3536548 테스트의 결과 일 뿐이므로 평가 방법을 모르겠습니다. –
코드 성능을 이해하는 첫 단계로 권장합니다. 'Benchmark' 보석을보십시오. 그런 다음 블랙 박스 테스트에 등록하기 전까지 변경 사항이 성능을 향상시키는시기를 확인할 수 있습니다. –