A047841 : 자서전 번호


12

정의

숫자를 설명하는 과정은 다음과 같습니다.

  • 번호 09해당하는 각 번호 의 경우 :
  • 해당 숫자의 빈도를 기록한 다음 숫자를 기록하십시오.

예를 들어 숫자는 10213223다음과 같습니다.

  • 1의 발생은 0,
  • 2의 발생 1,
  • 3의 발생 2,
  • 2의 발생 3.

따라서 설명하는 숫자 1021322310213223( 10첫 번째 속성, 21두 번째 속성 등)입니다.

숫자 발생 횟수는 9보다 클 수 있습니다 .

직무

자신을 설명하는 모든 숫자를 인쇄 / 출력해야합니다.

명세서

  • 출력을 하드 코딩하거나 출력과 관련된 정보를 프로그램에 저장할 있다는 점을 제외하고 표준 허점이 적용됩니다 .
  • 출력의 숫자는 어떤 순서로도 가능 합니다.
  • 출력의 번호는 허용 중복을 가지고.
  • 출력 대신 인쇄를 선택하면 구분 기호를 사용할 수 있습니다 .
  • 출력 대신 인쇄를 선택하면 접두사 및 / 또는 접미사 출력 이 허용 됩니다.
  • 구분 기호와 접두사 및 접두사는 숫자를 포함 할 수 없습니다 (U + 0030 ~ U + 0039).
  • 솔루션은 하루 안에 계산해야합니다 .

전체 목록 (109 개 항목)

22
10213223
10311233
10313314
10313315
10313316
10313317
10313318
10313319
21322314
21322315
21322316
21322317
21322318
21322319
31123314
31123315
31123316
31123317
31123318
31123319
31331415
31331416
31331417
31331418
31331419
31331516
31331517
31331518
31331519
31331617
31331618
31331619
31331718
31331719
31331819
1031223314
1031223315
1031223316
1031223317
1031223318
1031223319
3122331415
3122331416
3122331417
3122331418
3122331419
3122331516
3122331517
3122331518
3122331519
3122331617
3122331618
3122331619
3122331718
3122331719
3122331819
10413223241516
10413223241517
10413223241518
10413223241519
10413223241617
10413223241618
10413223241619
10413223241718
10413223241719
10413223241819
41322324151617
41322324151618
41322324151619
41322324151718
41322324151719
41322324151819
41322324161718
41322324161719
41322324161819
41322324171819
1051322314251617
1051322314251618
1051322314251619
1051322314251718
1051322314251719
1051322314251819
1051322325161718
1051322325161719
1051322325161819
1051322325171819
5132231425161718
5132231425161719
5132231425161819
5132231425171819
5132232516171819
106132231415261718
106132231415261719
106132231415261819
106132231426171819
106132231526171819
613223141526171819
1011112131415161718
1011112131415161719
1011112131415161819
1011112131415171819
1011112131416171819
1011112131516171819
1011112141516171819
1011113141516171819
1111213141516171819
10713223141516271819
101112213141516171819

참고 문헌


나는 이것이 속임수라고 확신합니다 ... 나는 단지 질문을 찾을 수 없습니다
Beta Decay

답변:


8

gawk, 161 바이트

BEGIN{
    for(split("0 10 2 2 1 1 1 1",a);c=c<11;n=o=_){
        while(++$c>a[c]+1)$(c++)=0;
        for(i in a)n=$i?n$i i-1:n;
        for(i=10;i--;)if(d=gsub(i,i,n))o=d i o;
        if(n==o)print n
    }
}

(명확성을 위해 줄 바꿈 및 탭)

각 숫자가 제한적으로 발생한다는 사실을 사용하는 간단한 카운터입니다. 예를 들어 0은 임의의 수에서 1 회 이하, 1은 11 회 이하, 2는 3 회 이하 ... 등입니다.

이 방법으로 확인할 수있는 숫자는 124415입니다.

그런 다음 모든 숫자를 만들고 유효성을 검사합니다.

몇 초 안에 완료됩니다.


2

dc, 487 바이트

솔루션을 하드 코딩했습니다. 나는 22로 시작하여 다음 숫자를 얻기 위해 차이점을 추가합니다. 행에 1을 5 번 추가하는 것과 같은 일부 반환 작업은 레지스터에 저장됩니다.

이것은 DC로 작성된 첫 번째 프로그램이므로 더 많이 골프를 칠 수 있습니다.

[1+d1+d1+d1+d1+d]sa[1+d1+d1+d1+d97+d]sb[1+d1+d99+d1+d100+d]sc[1+d1+d1+d98+dlcx]sd[1+d100+d10000+d]se22d10213201+d98010+d2081+dlax11008995+dlax9800995+dlax208096+dlbxldx999891495+dlax2091108096+dlbxldx10410100909697+dldx30909100909798+dlcx9899+dlex1009999990079798+dlcx10909899+dlex4080909099989899+dlex1091000000+d100999998899089899+d1+d100+d10910000+d10 8^+d50709091 10 10^*+d397888989888989899+dlex10 6^+d10 8^+d10 10^+d10 12^+d1001 10 14^*+d9602010000000100000+d90398989999999900000+f

를 사용하여 프로그램을 실행할 수 있습니다 dc -e "[solution]". 여기서 [solution]은 위의 문자열입니다. 숫자를 역순으로 출력합니다. dc -e "[solution]" | sort -n목록과 같은 순서로 출력합니다.


1

루비, 776 바이트

규칙에 따르면 "출력을 하드 코딩 할 수 있습니다"라고 표시되어 있으므로이 솔루션만으로도 가능합니다.

x="m|62wkn|65075|651sy|651sz|651t0|651t1|651t2|651t3|cp0ei|cp0ej|cp0ek|cp0el|cp0em|cp0en|ij2wi|ij2wj|ij2wk|ij2wl|ij2wm|ij2wnAh3Ah4Ah5Ah6Ah7AjwAjxAjyAjzAmpAmqAmrApiApjAsb|h1yp02|h1yp03|h1yp04|h1yp05|h1yp06|h1yp07Bc7Bc8Bc9BcaBcbBf0Bf1Bf2Bf3BhtBhuBhvBkmBknBnfFh8Fh9FhaFhbFk1Fk2Fk3FmuFmvFpnC08xC08yC08zC0bqC0brC0ejC81iC81jC84bCfu3EsxkfohEsxkfoiEsxkfojEsxkfraEsxkfrbEsxkfu3Et429yuEt429yvEt42a1nEt42hrf|1ej82kg93hy|1ej82kg93hz|1ej82kg93kr|1ej82kg9baj|1ej832ht8a3|t10qi0rmwpi|t10qi0rmwpj|t10qi0rmwsb|t10qi0y4qzv|t10qi2lo3hn|4nq1gm5kd1grG4p2zeraG4p2zerbG4p2zeu3G4p2zmjvG4p3l25nG4qr4enfG9c4v417|7ojtp0qb1maz|8fxg6lw9mtyj|29e6onjxe94gb|lc7bc5zbz4je3";a="|inj,|1fmye,|enb7ow,|enb7,|acnu,|3ovro98,|7ojtc".split',';b="ABCDEFG";7.times{|i|x.gsub! b[i],a[i]};x.split('|').map{|x|p x.to_i 36}

루비, 116 바이트

실행하는 데 너무 오래 걸리지 만 시간이 충분히 걸리는 훨씬 짧은 프로그램이이를 수행 할 수 있어야합니다. 시간 제약 조건에 맞는지 모르겠습니다.

f=->n{(?0..?9).map{|x|[n.to_s.chars.count{|c|c==x},x]}.select{|a|a[0]>0}.join.to_i}
(10**9).times{|i|p i if i==f[i]}

정수 파티션 29 (19 + 10)를 빌드하는 데 시간이 오래 걸립니다.
Leaky Nun

0

파이썬 2.7-684 바이트

o=[22]
i=[[10213223,100096],[21322314,5],[31123314,5],[31331415,404],[1031223314,5],[3122331415,404],[10413223241516,303],[41322324151617,20202],[1051322314251617,202],[1051322325161718,10101],[5132231425161718,10101],[5132232516171819,0],[106132231415261718,101],[106132231426171819,0],[106132231526171819,0],[613223141526171819,0],[1011112131415161718,10101]]
l=[1011112131416171819,1011112131516171819,1011112141516171819,1011113141516171819,1111213141516171819,10713223141516271819,101112213141516171819]
for n in i:
 for x in range(n[0],n[0]+n[1]):
  m="";x=str(x)
  for v in range(10):
   v=str(v);c=x.count(v)
   if c!=0:
    m=m+str(c)+v
    if m==x:o.append(m)
o+=l
print o

하드 코딩 된 반과 계산 된 반의 종류. 숫자를 상한과 하한을 가진 관리 가능한 크기의 그룹으로 나누는 접근법이 필요합니다. 리스트 i는 하한과 그 상한의 차이를 중첩리스트로 저장하고, 모든 잠재적 후보는 출력리스트 o에 추가 된 범위 내에서 점검된다. 마지막 7 개의 숫자는 너무 멀어서 자신의 목록에 저장하고 끝에 추가하는 것이 더 저렴합니다.

현재 몇 초 안에 실행되며 그룹 크기를 늘리면 바이트 수는 줄어들지 만 실행 시간은 늘어납니다. 그것이 내려와 여전히 하루 한도 내에 있는지 확실하지 않습니다.


0

/// , 542 바이트

/:/\/\///^/13223:!/31:*/
10:#/!223!:&/4^241:$/1819:(/51617:)/
!3!:%/5^142:@/111:-/*@121!:_/51:+/
!123!:=/41:A/617:B/19:C/*!3!:D/18:E/6^1=52:F/
#:G/
2^:H/*5^2:I/1!=($:J/_6:K/
&:L/*&:M/_7/22*2^*!1233C4C5C6C7C8C9G14G15G16G17GDGB+4+5+6+7+8+9)=5)=6)=7)=8)=9)J)M)_8)_9)A)6D)6B)7D)7B)8B*#4*#5*#6*#7*#8*#9F=5F=6F=7F=8F=9FJF_7F_8F_9FAF6DF6BF7DF7BF8BLJLML_8L_9LAL6DL6BL7DL7BL8BK(KJDKJBKMDKMBK5$KADKABK6$K7$*%(*%JD*%JB*%MD*%MB*%5$H(DH(BHJ$HM$
%(D
%(B
%J$
%M$
5^2($*EAD*EAB*E6$*6^142A$*6^152A$
EA$-=(D-=(B-=J$-=_7$-=617$-($*@121=($*@I
@12I*7^1=_627$*@22I

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

확실히 1440 바이트보다 작습니다! 리터럴과 함께 28 개의 상수를 사용합니다. ///에는 예외적으로 많은 양입니다.


실제 코드는 22*2^...에서 시작하며 이전의 모든 것은 찾기 및 바꾸기 패턴입니다.
Outgolfer Erik
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.