골프 스크립트-13 바이트, 1315 출력
991,{`.$2>>},
위의 숫자는 첫 번째 숫자가 숫자의 가장 큰 숫자 인 0-990 에서 숫자를 선택합니다 . 즉, 정렬 된 문자열 표현의 마지막 숫자는 사전 식으로 문자열 자체보다 작습니다. 논리는 다음과 같습니다.
3 자리 숫자 abc 의 경우 a 가 숫자의 가장 큰 숫자가 아닌 경우 나중에 두 경우 중 하나에 해당하므로 숫자를 건너 뜁니다.
B <C (예를 들어, 123 )
이기 때문에 C가 가장 자리이며, 숫자 운전실 스킵 없습니다. 이 예 (312)는 생략되지 않으며 것 다음 값 313 연접 ( 312 313 )를 포함 123 .
B ≥ C (예, 132 )
때문에 , B가 가장 자리이며, 숫자 BCA는 생략 될 수 없다. 이 예에서, 321 은 생략되지 않으며, 연결될 때 ( 321 322 )는 132를 포함하는 다음 값 ( 322) 도 생략되지 않을 것이다. 만약 B = C를 (예 : 122 ),이 경우에도 적용된다. 값 BCA는 전처럼, 스킵되지 않고 있기 때문에 , A는 반드시 미만이고 , B , BC <A + 1> 중 스킵되지 않는다. 이 예에서 221222 는 122를 포함합니다.
위 코드는 마지막 세 번째가 아닌 세 번째 숫자를 테스트하기 때문에 0-99의 모든 값 이 결과에 포함됩니다. 1-99 의 값은 건너 뛸 수 있지만, 모든 3 자리 시퀀스가있는 경우 모든 1 자리 및 2 자리 시퀀스도 존재해야하기 때문입니다.
991-999 의 값은 ( 909 910 , 919 920 , ... 989 990 )에 의해 생성되므로 생략 될 수도 있습니다 .
1315 바이트의 출력에서 이는 1500 미만의 문제 사양에 따라 편안합니다.
산출:
0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101110111200201202210211212220221222300301302303310311312313320321322323330331332333400401402403404410411412413414420421422423424430431432433434440441442443444500501502503504505510511512513514515520521522523524525530531532533534535540541542543544545550551552553554555600601602603604605606610611612613614615616620621622623624625626630631632633634635636640641642643644645646650651652653654655656660661662663664665666700701702703704705706707710711712713714715716717720721722723724725726727730731732733734735736737740741742743744745746747750751752753754755756757760761762763764765766767770771772773774775776777800801802803804805806807808810811812813814815816817818820821822823824825826827828830831832833834835836837838840841842843844845846847848850851852853854855856857858860861862863864865866867868870871872873874875876877878880881882883884885886887888900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990
변형 # 1
14 바이트, 1233 출력
991,{`.$-1>>},
세 번째가 아닌 비교할 마지막 숫자를 엄격하게 선택하면 100 미만의 불필요한 값 이 많이 제거되어 결과 문자열이 줄어 듭니다 .
101120212230313233404142434450515253545560616263646566707172737475767780818283848586878890919293949596979899100101110111200201202210211212220221222300301302303310311312313320321322323330331332333400401402403404410411412413414420421422423424430431432433434440441442443444500501502503504505510511512513514515520521522523524525530531532533534535540541542543544545550551552553554555600601602603604605606610611612613614615616620621622623624625626630631632633634635636640641642643644645646650651652653654655656660661662663664665666700701702703704705706707710711712713714715716717720721722723724725726727730731732733734735736737740741742743744745746747750751752753754755756757760761762763764765766767770771772773774775776777800801802803804805806807808810811812813814815816817818820821822823824825826827828830831832833834835836837838840841842843844845846847848850851852853854855856857858860861862863864865866867868870871872873874875876877878880881882883884885886887888900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990
변형 # 2
16 바이트, 1127 출력
991,99>{`.$2>>},
미리 99 미만의 모든 값을 제거 하면 결과 문자열을 훨씬 더 단축 할 수 있습니다.
99100101110111200201202210211212220221222300301302303310311312313320321322323330331332333400401402403404410411412413414420421422423424430431432433434440441442443444500501502503504505510511512513514515520521522523524525530531532533534535540541542543544545550551552553554555600601602603604605606610611612613614615616620621622623624625626630631632633634635636640641642643644645646650651652653654655656660661662663664665666700701702703704705706707710711712713714715716717720721722723724725726727730731732733734735736737740741742743744745746747750751752753754755756757760761762763764765766767770771772773774775776777800801802803804805806807808810811812813814815816817818820821822823824825826827828830831832833834835836837838840841842843844845846847848850851852853854855856857858860861862863864865866867868870871872873874875876877878880881882883884885886887888900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990
골프 스크립트-19 바이트, 1016 출력
910,99>{`.2$\?)>+}/
위의 값은 99 에서 909까지 이며, 아직 나타나지 않은 값을 추가합니다 ( 909 는 일반적 으로이 방법으로 추가 된 마지막 값입니다). 99 를 앞쪽으로 이동 하면 뒤쪽에 910이 필요하지 않도록 최적화됩니다 .
산출:
99100101102103104105106107108109111112113114115116117118119120122123124125126127128129130132133134135136137138139140142143144145146147148149150152153154155156157158159160162163164165166167168169170172173174175176177178179180182183184185186187188189190192193194195196197198199200202203204205206207208209222223224225226227228229230233234235236237238239240243244245246247248249250253254255256257258259260263264265266267268269270273274275276277278279280283284285286287288289290293294295296297298299300303304305306307308309333334335336337338339340344345346347348349350354355356357358359360364365366367368369370374375376377378379380384385386387388389390394395396397398399400404405406407408409444445446447448449450455456457458459460465466467468469470475476477478479480485486487488489490495496497498499500505506507508509555556557558559560566567568569570576577578579580586587588589590596597598599600606607608609666667668669670677678679680687688689690697698699700707708709777778779780788789790798799800808809888889890899900909
골프 스크립트 26 바이트, 999 출력
909.,99>{`..$.2><3$@?+>+}/
점을 유의 1,016 이전 용액 제조 문자열이 각각 여러 두 추가 숫자 갖는 제외한 거의 최적 인 (111) (즉, 11111
대신 111
, 22222
대신 222
등). 이 여분의 숫자를 제거하고 (이 값들 각각에 3 개가 아닌 1 개의 숫자 만 삽입), 909
앞쪽 으로 회전 하여 9
(이전 버전과는 달리 9100
앞뒤로 이동 하여 ) 최적의 솔루션을 만들 수 있습니다. ).
언 롤링 및 댓글 :
909.,99> # add 909 to the stack, and duplicate
# create an array from 0..908, and
# remove the first 99 elements (99..908)
{
`.. # stringify, duplicate twice
$.2>< # non-divisibility by 111 check
# true if the last char of the sorted
# string is greater than the first char
3$@? # first position of this number in
# the total string so far (-1 if not found)
+> # add the two previous results,
# and slice from that point
# (see explanation below)
+ # concat what remains to the total string
}/ # loop over the set
추가 할 문자를 선택하는 논리는 다음 세 가지 경우입니다.
- 111 ∤ n , n ⊄ s
첫 번째 검사의 값은 1 이고 두번째 검사의 값은 -1 입니다.
슬라이스는 인덱스 0 부터 시작합니다. 전체 문자열을 반환합니다.
- 111 ∤ n , n ⊂ s
첫 번째 검사의 값은 1 이고 두번째 검사의 값은 ≥ 2 입니다.
슬라이스는 인덱스 ≥ 3 부터 시작합니다. 빈 문자열을 반환합니다.
- 111 ∣ n , n ⊄ s
첫 번째 검사의 값은 0 이고 두번째 검사의 값은 -1 입니다.
슬라이스는 인덱스 -1 부터 시작합니다. 마지막 문자 만 반환합니다.
논리의 합은 아직 나타나지 않은 모든 값이 111 의 배수가 아닌 한 전체에 추가된다는 것 입니다.이 경우 하나의 문자 만 추가됩니다. 다른 모든 값은 무시됩니다.
생성 된 문자열은 Peter Taylor의 답변에서 생성 된 최적의 문자열과 다릅니다 .
역사:
899,{101+.111%{`.2$\?0<*}{3/9%}if+}/
899,{101+`.2$\?0<\.~111%2*)<*+}/0
899,{101+`.2$\?0<\..2>-!2*>*+}/0
899,{101+`...2>|,1|<2$@?0<*+}/0
999,{`..$.2>>2*>2$@?0<*+}/3>0
899,{101+`..$.2><3$@?+>+}/0
산출:
909910010110210310410510610710810911121131141151161171181191201221231241251261271281291301321331341351361371381391401421431441451461471481491501521531541551561571581591601621631641651661671681691701721731741751761771781791801821831841851861871881891901921931941951961971981992002022032042052062072082092223224225226227228229230233234235236237238239240243244245246247248249250253254255256257258259260263264265266267268269270273274275276277278279280283284285286287288289290293294295296297298299300303304305306307308309333433533633733833934034434534634734834935035435535635735835936036436536636736836937037437537637737837938038438538638738838939039439539639739839940040440540640740840944454464474484494504554564574584594604654664674684694704754764774784794804854864874884894904954964974984995005055065075085095556557558559560566567568569570576577578579580586587588589590596597598599600606607608609666766866967067767867968068768868969069769869970070770870977787797807887897907987998008088098889890899900