N 개의 염기에서 회 문인 숫자


10

음수가 아닌 정수가 주어지면 정확히 다른 기저의 회 문인 n >= 0정수 시퀀스를 영원히 출력 합니다 .x_i >= 3nb2 <= b <= x_i-2

이것은 기본적으로 OEIS A126071 의 역수입니다 n. 이 시퀀스에서 어떤 인덱스에 값이 있는지 출력합니다 . 베이스를 무시하도록 변경했기 때문에 약간 다릅니다.베이스 b = x_i-1, x_i, x_i+1에 대한 결과는 항상 동일하기 때문에 (값은 항상 회문이거나 항상 아닙니다). 또한 오프셋이 다릅니다.

x_i>= 3결과의 첫 번째 항이 A037183n 이 되도록 숫자로 제한됩니다 .

출력 형식은 유연하지만 숫자는 좋은 방법으로 구분해야합니다.

예 :

n   seq
0   3 4 6 11 19 47 53 79 103 137 139 149 163 167 ...
1   5 7 8 9 12 13 14 22 23 25 29 35 37 39 41 43 49 ...
2   10 15 16 17 18 20 27 30 31 32 33 34 38 44 ...
3   21 24 26 28 42 45 46 50 51 54 55 56 57 64 66 68 70 ...
4   36 40 48 52 63 65 85 88 90 92 98 121 128 132 136 138 ...
5   60 72 78 84 96 104 105 108 112 114 135 140 156 162 164 ...
10  252 400 420 432 510 546 600 648 784 800 810 816 819 828 858 882 910 912 1040 1056 ...

따라서에 대한 회 문인 숫자를 얻으므로이 챌린지n=0 의 결과는 에서 시작합니다 (에서 시작 ) .3n=0

를 들어 n=1, 5기본에서 회문은 2, 그 유일한 기지이다 2 <= b <= (5-2)가.의 회문 있다는 7자료 회문이며 2, 그 유일한 기지이다 2 <= b <= (7-2)가에서 회문이 있다고. 등


언어에서 무한 출력을 지원하지 않는 경우 다른 정수 z를 입력 z으로 사용하여 시퀀스 의 첫 번째 요소 또는보다 작은 모든 요소를 출력 할 수 있습니다 z. 당신이 선호하는 것. 이 경우 답변에 사용한 것을 기재하십시오.

관련


100 % 명확 해지려면, 출력되는 숫자는 정확히 또는 더 많은베이스가 n아닌 회문이어야합니다 n.
Mike Bufardeci

1
예. 맞아요. 따라서 모든 값에 대한 모든 시퀀스의 합집합 n은 정수 세트입니다 >=3.
mbomb007

답변:


2

젤리 , 18 바이트

Ṅ‘µ‘µbRŒḂ€S_2⁼³µ?ß

온라인으로 사용해보십시오! -온라인 통역사가 60 초에 시간 초과 된 다음 출력을 플러시합니다 (캐시 된 사본이없는 경우). 오프라인에서는 각각 차례대로 인쇄됩니다.

어떻게?

숫자를 n순서대로 평가 하여 인쇄합니다. n그렇지 않으면 범위 b가 충분하지 않기 때문에 모든 출력의 첫 번째 숫자는보다 큽니다 3. 따라서로 프로세스를 시드 할 필요가 없습니다 . 또한 기본 2 에서 x i -2 까지의 회 문의 수는 기본 1 에서 x 까지의 회 문의 수보다 두 개만 적습니다 .

Ṅ‘µ‘µbRŒḂ€S_2⁼³µ?ß - Main link: n
 AµBµC         µ?  - ternary if: if C then A else B
      R            - range: [1,2,3...,n]
     b             - n converted to those bases
       ŒḂ€         - is palindromic? for €ach
          S        - sum: counts the 1s
           _2      - subtract 2: throw away the truthy unary and base n-1 effect
             ⁼³    - equals input: Does this equal the ORIGINAL n?
Ṅ                  - if so: print n
 ‘                 -        increment n
   ‘               - else: just increment n
                 ß - calls this link as a monad, with the incremented n.

4

매스 매 티카, 80 71 바이트

9 바이트를 절약 한 JungHwan Min에게 감사합니다!

Do[#!=Length[i~IntegerReverse~Range[2,i-2]~Cases~i]||Echo@i,{i,3,∞}]&

( 3 바이트 문자 U + 221E입니다.) 음수가 아닌 정수를 입력으로 사용하는 순수 함수. 모든 밑에서에서 까지 i~IntegerReverse~Range[2,i-2]의 숫자 반전 목록을 작성합니다 . 그런 다음 이 반전 중 몇 번이 다시 같은지 계산합니다 . 해당 카운트가 입력과 같지 않으면 자동으로 정지되고 입력과 같으면 에코 됩니다. 이 절차는 간단한 무한 루프에 포함되어 있습니다.i2i-2Length[...~Cases~i]i#!=...||Echo@ii


단락 평가 의 영리한 사용 ! Echo@i첫 번째 인수 인 경우 기간은 평가되지 않습니다 True. Mathematica의 골프 팁에 이것을 추가 할 수 있습니까 ?
JungHwan Min

그런데, Do[...,{i,3,∞}]보다 짧은 (i=2;While[1>0,... ++i ...]), 그리고 Cases대신 작동합니다 Position. -9 바이트 :Do[#!=Length[i~IntegerReverse~Range[2,i-2]~Cases~i]||Echo@i,{i,3,∞}]&
JungHwan Min

그렇습니다. 팁을 추가하십시오! — 어딘가에이 사이트에서 확실히 배웠기 때문에 아직 거기에없는 것이 놀랍습니다 ....
Greg Martin

Cases대신에 잘 작동합니다 Position. 그러나 나는 Do건설을 테스트 했는데 그것은 효과가 없지만 왜 그런지 모르겠다. 어떤 이유로 든 i값을 연결하지 않습니다 "Range specification in Range[2,-2+i] does not have appropriate bounds.". 오류가 발생합니다 . (그리고 값이 할당되지 않은 Print[i];검증을 삽입 i합니다.) 어떤 아이디어?
Greg Martin

분명히 코드에는 U + 200B와 U + 200C가 ,있었고 {(아마도 SE 시스템과 관련이 있음) 있습니다. 문자가 변수로 간주되기 때문에 코드가 손상됩니다. 나는 이것이 그것을 갖지 않기를 바란다. Do[#!=Length[i~IntegerReverse~Range[2,i-2]~Cases~i]||Echo@i,{i,3,∞}]& 편집 : 여전히있다. 다음은 pastebin 링크입니다
JungHwan Min

1

Pyth, 21 19 18 바이트

.V3IqQlf_IjbTr2tbb

이것은 이론적으로 작동합니다. 유한 루프를 무한 루프로 대체하면 제대로 작동하지만 (예 : JQFbr3 50*`bqJlf_IjbTr2tb3 ~ 50, 여기 에 시도 하십시오 ) Pyth 인터프리터는 문자 그대로 무한 출력을 언제 또는 어떻게 인쇄할지 알 수 없습니다.

설명:

.V3IqQlf_IjbTr2tbb
.V3                     increase b infinitely, starting from 3
             r2Tb       range of integers including 2 to b - 2
      lf                length of elements retained if:
          jbT             b in that base
        _I                is invariant under reversal
    qQ                  check if the length is equivalent to the input
   I             b      output b if so

1

펄 6 , 90 바이트

->\n{->{$_=++($ //=2);$_ if n==grep {($/=[.polymod($^b xx*)])eq[$/.reverse]},2..$_-2}...*}

시도 해봐

-> \n {

  # sequence generator
  ->{         # using a code block with no parameter

    $_ =      # set the default scalar to the value being tested
      ++(     # preincrement
        $     # anonymous state variable
        //= 2 # initialized to 2 
      );

    # the anonymous state var maintains its state
    # only for this current sequence
    # every time the outer block gets called it is created anew

    $_    # return the current value
      if  # if the following is true

        n == grep # find all that match the following code

          {
            # convert the current value to the base being tested
            # store as an Array in $/
            ($/ = [ .polymod($^b xx*) ] )

            eq    # is string equal to: (shorter than eqv)

            [ $/.reverse ]
          },

          2 .. $_ - 2 # from the list of bases to test
  }

  ...  # keep using that code block to produce values

  *    # indefinitely
}

1

Bash + Unix 유틸리티, 134132 바이트

for((x=3;;x++)){
c=$1
for((b=x-1;--b>1;)){
s=`bc<<<"for(y=$x;y;y/=$b)y%$b"`
t=`tac<<<"$s"`
[ "${s#$t}" ]||((c--))
}
((c))||echo $x
}

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

입력은 인수로 전달됩니다. 출력이 stdout에 있습니다.

정상적으로 실행하면 한 번에 하나의 숫자가 무한대로 표시됩니다.

TIO에서이 작업을 시도하면 60 초에 시간 초과 될 때 생성 된만큼의 출력이 표시됩니다.


0

파이썬 2, 132 바이트

B=lambda n,b:[]if(n<1)else B(n/b,b)+[n%b]
n=input()
x=3
while 1:
    if sum(B(x,b)==B(x,b)[::-1]for b in range(2,x-1))==n:print x
    x+=1

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

TIO 프로그램에는 바닥 글이 추가되어 있으므로 출력을보기 전에 프로그램이 시간 초과 될 때까지 1 분을 기다리지 않아도됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.