증분 범위! 시퀀스 의 첫 숫자를 반환해야 합니다.nnnxxx 증분

두 개의 양의 정수

x

와 주어지면 증분 범위 시퀀스 의 첫 숫자를 반환해야 합니다.

n

x

증분 범위 시퀀스는 먼저 1에서 까지 의 범위를 생성 합니다. 예를 들어, 이 이면 목록 생성합니다 . 그런 다음 씩 증가한 마지막 값 을 기존 목록에 반복적으로 추가 하고 계속합니다.

n

n

3

[1,2,3]

n

1

예를 들어 의 입력은 다음과 같습니다.

n=3

n=3
1. Get range 1 to n. List: [1,2,3]
2. Get the last n values of the list. List: [1,2,3]. Last n=3 values: [1,2,3].
3. Increment the last n values by 1. List: [1,2,3]. Last n values: [2,3,4].
4. Append the last n values incremented to the list. List: [1,2,3,2,3,4]
5. Repeat steps 2-5. 2nd time repeat shown below.

2nd repeat:
2. Get the last n values of the list. List: [1,2,3,2,3,4]. Last n=3 values: [2,3,4]
3. Increment the last n values by 1. List: [1,2,3,2,3,4]. Last n values: [3,4,5].
4. Append the last n values incremented to the list. List: [1,2,3,2,3,4,3,4,5]

테스트 사례 :

n,   x,   Output
1,  49,   [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49]
2, 100,   [1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32,33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51]
3,  13,   [1,2,3,2,3,4,3,4,5,4,5,6,5]



답변

파이썬 2 , 39 바이트

lambda n,x:[v/n+v%n+1for v in range(x)]

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


답변

젤리 , 4 바이트

Ḷd§‘

x왼쪽과 n오른쪽 에 두 개의 양의 정수를 허용하는 양수 링크 는 양의 정수 목록을 생성합니다.

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

어떻게?

Ḷd§‘ - Link: x, n              e.g   13, 3
Ḷ    - lowered range (x)             [0,1,2,3,4,5,6,7,8,9,10,11,12]
 d   - divmod (n)                    [[0,0],[0,1],[0,2],[1,0],[1,1],[1,2],[2,0],[2,1],[2,2],[3,0],[3,1],[3,2],[4,0]]
  §  - sums                          [0,1,2,1,2,3,2,3,4,3,4,5,4]
   ‘ - increment (vectorises)        [1,2,3,2,3,4,3,4,5,4,5,6,5]


답변

R , 33 바이트

function(n,x,z=1:x-1)z%%n+z%/%n+1

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

포트 조나단 앨런의 파이썬 솔루션 .

R , 36 바이트

function(n,x)outer(1:n,0:x,"+")[1:x]

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

내 원래 솔루션; 각 열을 증분으로하여

×엑스

행렬을 생성합니다 . 즉,

1,2+1,

은 첫

엑스

항목 을 취 합니다 (열 아래로).


답변

05AB1E , 6 바이트

L<s‰O>

@JonathanAllan 의 젤리 답변 포트 , 그래서 그를 투표해야합니다!

첫 번째 입력은

x

이고 두 번째 입력은

입니다.

온라인으로 시도 하거나 모든 테스트 사례를 확인하십시오 .

설명:

L       # Push a list in the range [1, (implicit) input]
        #  i.e. 13 → [1,2,3,4,5,6,7,8,9,10,11,12,13]
 <      # Decrease each by 1 to the range [0, input)
        #  → [0,1,2,3,4,5,6,7,8,9,10,11,12]
  s    # Divmod each by the second input
        #  i.e. 3 → [[0,0],[0,1],[0,2],[1,0],[1,1],[1,2],[2,0],[2,1],[2,2],[3,0],[3,1],[3,2],[4,0]]
    O   # Sum each pair
        #  → [0,1,2,1,2,3,2,3,4,3,4,5,4]
     >  # And increase each by 1
        #  → [1,2,3,2,3,4,3,4,5,4,5,6,5]
        # (after which the result is output implicitly)

내 자신의 초기 접근 방식은 8 바이트 였습니다 .

LI∍εN¹÷+

첫 번째 입력은

n

이고 두 번째 입력은

엑스

입니다.

온라인으로 시도 하거나 모든 테스트 사례를 확인하십시오 .

설명:

L         # Push a list in the range [1, (implicit) input]
          #  i.e. 3 → [1,2,3]
 I       # Extend it to the size of the second input
          #  i.e. 13 → [1,2,3,1,2,3,1,2,3,1,2,3,1]
   ε      # Map each value to:
    N¹÷   #  The 0-based index integer-divided by the first input
          #   → [0,0,0,1,1,1,2,2,2,3,3,3,4]
       +  #  Add that to the value
          #   → [1,2,3,2,3,4,3,4,5,4,5,6,5]
          # (after which the result is output implicitly)


답변

펄 6 , 18 바이트

{(1..*X+ ^*)[^$_]}

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

카레 기능 f(x)(n).

설명

{                }  # Anonymous block
      X+     # Cartesian product with addition
  1..*       # of range 1..Inf
         ^*  # and range 0..n
 (         )[^$_]  # First x elements


답변

Brain-Flak , 100 바이트

(<>)<>{({}[()]<(({}))((){[()](<{}>)}{}){{}{}<>(({})<>)(<>)(<>)}{}({}[()]<(<>[]({}())[()]<>)>)>)}{}{}

주석과 형식 :

# Push a zero under the other stack
(<>)<>

# x times
{
    # x - 1
    ({}[()]<

        # Let 'a' be a counter that starts at n
        # Duplicate a and NOT
        (({}))((){[()](<{}>)}{})

        # if a == 0
        {
            # Pop truthy
            {}
            <>

            # Reset n to a
            (({})<>)

            # Push 0 to each
            (<>)(<>)
        }

        # Pop falsy
        {}

        # Decrement A, add one to the other stack, and duplicate that number under this stack
        ({}[()]<
            (<>[]({}())<>)
        >)
    >)
}

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


답변

J , 13 12 바이트

[$[:,1++/&i.

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

어떻게

우리 는 오른쪽 xn같이 왼쪽 인수 로 사용합니다. 의는하자 x = 8n = 3이 예를 들면 :

  • +/&i.: 정수 범위를 작성하여 두 인수를 변환하십시오 i.. 즉, 왼쪽 arg가 0 1 2 3 4 5 6 7되고 오른쪽 arg가됩니다 0 1 2. 이제 우리 +/는 그 두 가지로부터 “추가 테이블 을 만듭니다 :

     0 1 2
     1 2 3
     2 3 4
     3 4 5
     4 5 6
     5 6 7
     6 7 8
     7 8 9
    
  • 1 +:이 테이블의 모든 요소에 1을 추가하십시오.

     1 2  3
     2 3  4
     3 4  5
     4 5  6
     5 6  7
     6 7  8
     7 8  9
     8 9 10
    
  • [: ,: 평평하게 ,:

     1 2 3 2 3 4 3 4 5 4 5 6 5 6 7 6 7 8 7 8 9 8 9 10
    
  • [ $: 그 모양 $원래, 변환되지 않은 왼쪽 인수 같은 수의 요소가 있으므로 [, 예를 x:

     1 2 3 2 3 4 3 4