태그 보관물: arithmetic

arithmetic

위장 색 변화 카멜레온 도전 있습니다. 다른 형식의 입력을받는 경우 숫자는 길이가 일정해야하며

카멜레온 도전은 분명히 나쁜 일 입니다. 너무 나쁜 카멜레온은 아름다운 생물입니다. 변화를위한 시간!

우리 모두 알다시피, 많은 카멜레온은 피부색을 바꿔 주변 환경과 조화를 이룰 수있는 놀라운 능력을 가지고 있습니다. 이 도전의 목표이기도합니다.

도전

9 픽셀의 정사각형을 상상해보십시오. 8 개의 픽셀이 주변 환경입니다. 중앙에는 카멜레온이 있습니다.

이처럼 :

카멜레온은 자연스럽게 주변 환경과 조화를 이루려고 노력합니다. 색상을 주변 픽셀의 평균 색상으로 변경하면됩니다. 따라서이 경우 카멜레온의 색상이로 변경됩니다 .

객관적인

주변 픽셀의 색상이 주어지면 카멜레온의 색상을 출력하십시오.

카멜레온의 색상은 픽셀 ÷ 8의 모든 빨강, 녹색 및 파랑의 총계로 정의됩니다.

입력

다음과 같이 왼쪽 상단에서 시작하여 시계 방향으로 계속되는 8 개의 주변 픽셀에 대한 색상 값 배열입니다.

[[<red>,<green>,<blue>],[<red>,<green>,<blue>],[<red>,<green>,<blue>],[<red>,<green>,<blue>],[<red>,<green>,<blue>],[<red>,<green>,<blue>],[<red>,<green>,<blue>],[<red>,<green>,<blue>]]

8 개의 10 진수 0-255로 구성된 경우 다른 형식으로 입력을 수신하도록 선택할 수 있습니다.

다른 형식의 입력을받는 경우 숫자는 길이가 일정해야하며 숫자 사이에 숫자가 아닌 구분 기호가 있어야합니다. 트리플은 9 자리 숫자로 0이 채워지지 않는 한 분리 문자를 가져야합니다. (예 : 044200255044200255044200255044200255044200255044200255044200255044200255유효 하지만 44 200 255 44 200 255 44 200 255 44 200 255 44 200 255 44 200 255 44 200 255 44 200 25544?200?255$44?200?255$44?200?255$44?200?255$44?200?255$44?200?255$44?200?255$44?200?255이지만 유효 4420025544200255442002554420025544200255442002554420025544200255하지 않습니다.)

산출

중앙 픽셀의 색상을 포함하는 배열 / 문자열 등 (10 진수)은 다음과 같습니다.

[<red>,<green>,<blue>]

배열 이외의 것을 출력하는 경우 : 숫자는 길이가 일정해야하거나 숫자 사이에 숫자가 아닌 구분자가 있어야합니다. (예 : 044200255유효 44 200 255하지만 유효 44200255하지 않습니다.)

숫자는 소수점을 포함 할 수 없으므로 44.0 200 255.0유효하지 않습니다.

반올림

출력은 가장 가까운 정수로 반올림되어야합니다. (반쪽는 반올림해야합니다.) 예, 모두 빨간의 합이 경우 1620 , 당신은 출력해야한다 203,하지 202202.5.

사진은 예시 용입니다. 가운데 픽셀이 출력이고 주변 픽셀이 입력입니다.

입력:

[[200,200,200],[200,200,200],[200,200,200],[200,200,200],[200,200,200],[200,200,200],[200,200,200],[200,200,200]]

산출:

[200,200,200]


입력:

[[0,0,0],[255,255,255],[0,0,0],[255,255,255],[255,255,255],[0,0,0],[255,255,255],[0,0,0]]

산출:

[128,128,128]


입력:

[[0,200,200],[200,0,200],[200,200,0],[60,200,0],[200,0,200],[0,200,220],[2,200,0],[0,0,0]]

산출:

[83,125,103]


입력:

[[0,56,58],[65,0,200],[33,200,0],[60,33,0],[98,0,200],[0,28,220],[2,200,0],[99,0,5]]

산출:

[45,65,85]

제출물은 전체 프로그램 또는 기능 일 수 있습니다. 표준 I / O허점 규칙이 적용됩니다.



답변

MATL, 8 4 바이트

YmYo

온라인으로 사용해보십시오!

비커 덕분에 4 바이트가 절약되었습니다!

설명:

Ym          "Get the average of each column
  Yo        "And round up

답변

파이썬, 38 바이트

lambda l:[sum(r)+4>>3for r in zip(*l)]

합계에 4를 더한 다음 비트 시프트를 통해 8을 바닥으로 나눔으로써 평균을 반올림하여 반올림하여 가장 가까운 정수로 반올림합니다 >>3.


답변

젤리 , 5 바이트

S+4:8

테스트 스위트 . (모든 테스트 케이스를 한 번에 확인하도록 약간 수정했습니다.)

S+4:8
S      sum (vectorized)
 +4    add 4
   :8  floor division by 8

답변

C, 151 (123) 103 91

RGBRGB 순서로 프로그램에 24 개의 매개 변수가 전달되어야하며 개행없이 삼중 항 RGB를 출력합니다.

i,t;main(c,v)char**v;{for(i=0;t=4,i++<3;printf("%d ",t/8))for(c=i;c<24;c+=3)t+=atoi(v[c]);}

답변

Pyth , 8 바이트

m.R.Od0C

테스트 스위트 .

m.R.Od0C     input: Q
m.R.Od0CQ    implicit arguments
        Q    input
       C     transpose
m    d       for each:
   .O            take average
 .R   0          round off

답변

파이크, 7 바이트

,FsOO8f

여기 사용해보십시오!


답변

J, 11 바이트

0.5<.@++/%#

각 행이 RGB 값인 8×3 배열로 입력을받습니다.

설명

0.5<.@++/%#  Input: a
          #  Count the number of rows
       +/    Sum along the columns
         %   Divide each sum by the count to get the averages
0.5   +      Add 0.5 to each average
   <.@       Floor each value and return