당신은 얼마나 많이 셀 수 있습니까?


154

도전:

당신의 작업은 당신이 할 수있는 한 많은 프로그램 / 함수 / 스 니펫을 작성하는 것입니다, 각 출력은 정수를 출력 / 인쇄 / 반환합니다. 첫 번째 프로그램은 integer 1, 두 번째 프로그램 등을 출력해야합니다 2.

프로그램간에 문자를 재사용 할 수 없습니다. 따라서 첫 번째 프로그램이 x==x다음 x과 같은 =경우에는 다른 프로그램에서 문자 를 다시 사용할 수 없습니다 . 참고 : 한 프로그램에서 같은 문자를 여러 번 사용할 수 있습니다.

채점 :

우승자가 가장 높은 제출물이됩니다. 동점이있는 경우, 가장 적은 수의 바이트를 사용한 제출물이 승자가됩니다.

규칙 :

  • 모든 정수에 단일 언어 만 사용할 수 있습니다
  • 스 니펫이 허용됩니다!
  • 공정하게 유지하려면 모든 언어를 선택한 언어의 단일 바이트를 사용하여 인코딩해야합니다.
  • 출력은 10 진수 여야합니다. 과학적 표기법이나 다른 대체 형식으로 출력 할 수 없습니다. 소수점 뒤에 표시 되는 모든 숫자 이면 부동 소수점 출력은 정상 0입니다. 따라서 4.000받아 들여집니다. 출력에 표시되지 않는 한 FPA로 인한 부정확성이 허용됩니다.
  • ans =, 선행 및 후행 공백 및 줄 바꿈 등이 허용됩니다.
  • 올바른 출력이 STDOUT으로 리턴되는 한 STDERR을 무시할 수 있습니다.
  • STDOUT이 비어있는 경우에만 STDERR에 정수를 출력하도록 선택할 수 있습니다.
  • Lenguage 와 같은 기호 독립 언어 는 허용되지 않습니다
  • 문자는 대소 문자를 구분 a != A합니다.
  • 프로그램은 독립적이어야합니다
  • 공백은 재사용 할 수 없습니다
  • 출력에서 ASCII 숫자를 사용해야합니다

설명이 권장됩니다!


4
Headsecks 언어는 모든 캐릭터의 하위 3 비트에만 관심이 있으며 사소하게 64 점을 얻습니다. 부분적으로는 심볼에 독립적이지만 완전히는 아닙니다. 마지막 규칙은 부분적으로 기호 독립적 인 언어를 다루어야한다고 생각하지만 어떻게 문구를 말 해야할지 모르겠습니다.
Dennis

1
스 니펫 규칙과 관련하여 계속 사용 / 가져 오기를 포함해야합니까? 정적 가져 오기가 허용됩니까 (스 니펫의 일부로 만들지 않음)?
Kevin Cruijssen

1
@KevinCruijssen은 모든 프로그램 / 기능에 필요한 상용구를 생략 할 수 있습니다. 예를 들어 #include <iostream>C ++에는 보일러 플레이트 가 필요하지 않습니다 . 당신 필요합니다 from numpy import *. 참고 : 저는 프로그래머가 아니기 때문에 모든 뉘앙스를 모릅니다. 뭔가 :) 불분명하면 우리는 채팅에서 논의 할 수
스튜이 그리핀

1
귀하는 @tuskiomi와 같은 투표를 할 권리가 있지만, 제 생각에는 좋은 규칙입니다. 공백 문자는 다른 문자와 마찬가지로 바이트입니다. 왜 다르게 취급해야합니까? 또한 공백, 탭 및 줄 이동 만 포함하므로 언어 ​​공백이 산사태로 승리합니다. 왜 당신이 downvoted :-)했는지 주셔서 감사합니다
Stewie Griffin

1
@StewieGriffin 나는 최소한 공백을 허용하지만, 나는 당신이 아닙니다.
tuskiomi

답변:


146

자바 스크립트 (ES7), 점수 17, 176 바이트

그들은 그것을 할 수 없다고 말했기 때문에 나는 그것을했다 : D (@FullDecent의 많은 도움 덕분에)

""**""
~(~/~//~/~/)/~/~/
3
4
!NaN- -!NaN- -!NaN- -!NaN- -!NaN
6
7
8
9
++[[]][+[]]+[+[]]
11
'lengthlength'.length
222>>2>>2
`${``^``}xE`^``
0XF
C=CSS==CSS;C<<C<<C<<C<<C
555555555555555555555%55

사용하지 않은 문자 :

#&,:?@ABDGHIJKLMOPQRTUVWYZ\_bcdfijkmopqrsuvwyz|

나는 18이 가능하다고 생각하지 않지만 17에 대해 같은 것을 말했습니다 ...

설명

JavaScript는 매우 약한 유형의 언어입니다. 숫자가 아닌 값에서 수학 연산을 수행하려고 시도하면 JS는 가장 먼저 숫자로 변환하려고 시도합니다. 이것은 많은 흥미로운 해결책을 허용합니다. 나는 나중에 사용할 수 있도록 가능한 한 숫자를 사용하지 않으려 고 노력했습니다.

  1. **ES7의 지수 연산자입니다. 숫자로 강제 빈 문자열이된다 0, 그래서 이것은 계산 0 ** 0되는, 1자바 스크립트에 따라.
  2. 조금 말도 안되지만 작동합니다. /~/는 정규 표현식 리터럴이며을 ~/~/반환 -1하므로 ~(-1 / -1) / -1= ~(1) / -1= -2 / -1= 2입니다. ( 아이디어 를 위해 @ GOTO0 에 신용 )
  3. 간단히 3.
  4. 이제 간단하게 4.
  5. NaN그래서 falsy 인 !NaNIS true등가 인 1. 따라서 표현식은 1 - -1 - -1 - -1 - -1= 1 + 1 + 1 + 1 + 1=가 5됩니다.
  6. 간단히 6.
  7. 간단히 7.
  8. 간단히 8.
  9. 간단히 9.
  10. 이것은 약간의 JSF *** 마술을 사용합니다 . +[]이다 0그래서 [[]][+[]]제 소자의 반환 [[]](즉, []), 그리고 ++이것에 증분 1. 그런 다음 +[+[]]배열을 추가합니다. 배열 [0]문자열 로 변환 되고 만들어 "10"집니다.
  11. 간단히 11. 나는 내가 얼마나 바보인지 다시 깨달을 때까지 원래 11&11113과 33/311을 사용 했습니다 ...
  12. 이 전략은 숫자에 관계없이 작동합니다 : 길이의 문자열을 만들고 12사용하십시오 .length.
  13. 나는 이것을 얻기 위해 잠시 동안 2s와 >s를 엉망으로 만들었다 . 나는 다시 행운이있어 : 222 >> 2이다 55,하고 55 >> 2있다 13.
  14. 이것은 다소 까다 롭습니다. 기본 아이디어는 1416 진수 ( 0xE) 로 만드는 것이지만 0다른 곳에 숫자가 필요합니다 . 대신 결과를 ``^``문자열 앞에 추가 합니다 xE. 숫자로 강제 변환 된 빈 문자열은 0이므로 0 ^ 0=를 반환합니다 0. 그런 다음 결과는 빈 문자열로 XOR되어 두 값을 숫자로 변환합니다. "0xE" ^ ""입니다 14.
  15. 이것은 이제 매우 쉽습니다. 0XF값이 16 진 리터럴입니다 15.
  16. 가장 까다로운? 먼저 변수 CCSS == CSS(즉, true) 로 설정합니다 . 그런 다음 결과를 취하고 << C네 번 수행 하며 기본적으로에 곱 1합니다 2 ** 4.
  17. 자바 스크립트는 2에서 정수 정밀도를 잃고 시작 53 수, 555...555%55아니다 숫자 반환 0또는 5. 여기서 놀면서 아주 운이 좋았습니다.

많은 수의 전략이 효과적입니다.

  • -!NaN5그것은 매우 빨리 커지더라도 어떤 숫자 (현재 ) 에서도 작동합니다 .
  • ~/~/어떤 수 (현재 작업 것입니다 2그것을 가져 불구하고) 매우매우 빠르게.
  • +[]또는에서 10가장 쉬운 방법이지만 모든 숫자 (현재 )에서 작동합니다 .1011
  • .length 어떤 숫자에서도 작동합니다.
  • `${-``}xE`-`` 제대로하면 거의 모든 숫자에서 작동합니다.
  • C<<C16포함하는 경우 2의 현재 (현재 ) 또는 int에서 작동합니다 |.

3
정말 대단합니다 :)
Steve Bennett

1
이 중 하나 사용하는 몇 가지 비열한 방법이 될 수있는 window.속성 등이 defaultPixelWidth있지만, 그들 모두는 하나를 포함하는 것 le. 다른 0을 얻을 수는 URL | URL있지만별로 도움이되지 않습니다.
Steve Bennett

1
또한 "focus"를 찾았지만 여전히 18에 도달하는 방법을 보지 못했습니다. "focus"는 function ()입니다. "focus & focus"는 0입니다. "focus (URL)"은 정의되어 있지 않습니다.
Xantix

1
: 증가 현재 발견 사업자+ - * ~ < x X length
l4m2

1
숫자 부족은 주로 이러한 기호에 제한됩니다. 숫자는 중 하나를 포함합니다 1 2 3 4 5 6 7 8 9 + - * ~ < x X length. 그래서 그것을 해결하기 전에 우리는 갈 수 없습니다 18
l4m2

90

젤리 , 47 정수, 519 바이트

e
BI$⁼#
⁾⁾⁾Ụ^/
ı***ıḞḞ
5
6
7
.::::
9
EȮ<
⁻GṘ
=`p`VV×`DQV
~A~A~A~A~A~A~A~A~A~A~A~A~A
⁷ṾṾṾw
⁴ḟ€⁴Ṁ
mmmmċ
ṭṭṭṭṭṭṭṭḍḄḄḄḄḄḄḄḄḄ
+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ
CNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNC
ĖḌĖḌ
ṫṣȦJṫȦ⁸ȦJ
22
“@ṃ»
!ḤḤ!
³HH
ØaM
;;;;;;;;;;;;;;;;;;;;;;;;;;;¬¬ḅ¬
irið8c
⁶ḲĠṂ°İṂĊ
œṡ¹ẆẆTUṖṖṖṖP
ȷ½RṪ
LµdddddµFL
33
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWŒḊ
ẇɓæ«æ«æ«æ«æ«|æ«|
⁹ṚḢ²
‘‘‘0‘‘‘‘‘‘‘
’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ạ
-____---__________
”(O
⁵ḶxḶ⁵ị⁵ḶxḶḣṢ
⁽{ʂ%⁽{}
ẊẠżv©żvżvżvọ®®Ạżvżvżvọ®
44
111111l11&K1111111Kl11&
,SS¶ỊỊ,ÇS¶ÇÑÇÇÇÑ
ÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆn

모든 라인은 별도의 완전한 프로그램입니다.

온라인으로 사용해보십시오! (테스트 스위트 및 교차점 검사기 포함)

작동 원리

명령 줄 인수가없는 모든 전체 프로그램은 주 링크 (마지막 줄에 정의 됨)를 입력없이 즉석에서 실행합니다. 체인의 첫 번째 링크가 nilad이면 소비되고 호출되며 주 링크의 인수와 반환 값이 결과로 설정됩니다. 체인의 첫 번째 링크가 모나드 또는 다이아 드 인 경우 에는 소비 되지 않으며 암시 적 인수와 반환 값 0 이 대신 사용됩니다. 두 경우 모두 나머지 체인은 모나드 방식으로 실행됩니다.

젤리는 여러 경우에 출력을 맹 글링합니다. 특히 싱글 톤 어레이는 주변 브래킷없이 인쇄되므로 42[42]는 인쇄 후 구분할 수 없습니다. 우리는 이것을 여러 차례 사용할 것입니다.

1 – 10

e

존재 리턴 값 경우 원자 테스트 0 인자에 속한다 0 . 그렇게하므로 1을e 반환합니다 .

BI$⁼#

BI$는 퀵 링크, 특히 이원자 원자 와 증분 원자를 퀵 $그룹화 함으로써 형성된 모나 딕 사슬 이다 . 결합하여 정수를 밑이 2 인 자릿수의 배열로 변환 한 다음 결과 자릿수의 앞으로 차이를 계산합니다. 배열에 요소가 하나만 있으면 앞으로 차이가없고 빈 배열 (거짓)을 반환합니다. 두 자리 이상의 숫자 가 있으면 비어 있지 않은 배열 (truthy)을 반환합니다.BIII

quick #은 이전 퀵 링크를 사용하고 일치하는 항목이 충분히 발견 될 때까지 0 , 1, 2,…에 적용합니다 . 필요한 금액은로 계산되어 반환 값 / 인수 0 과 자체 를 비교 하여 1을 산출 합니다. 따라서 전체 프로그램은 [2]를 반환합니다 . 기본이 음수가 아닌 두 번째 정수는 밑이 2입니다.

⁾⁾⁾Ụ^/

⁾⁾⁾문자열 리터럴, 특히 문자열 ⁾⁾ 입니다. 등급 업 원자는 상응하는 값으로 그 인덱스를 정렬; 두 문자가 모두 같으므로 [1, 2]가 됩니다. 결과 배열은 비트 단위 XOR로 축소 ^/되므로 전체 프로그램이 3을 반환합니다 .

ı***ıḞḞ

ı인수와 반환 값을 허수 단위 i 로 초기화 합니다. *는 IS 지수의 그 오른쪽 인자 메인 링크의 주장에 기본적으로 양자 관계는. 따라서 ***ı계산해은 ((I I ) I ) 내가 4.81 + 0I ≈원자 ( 바닥 실제 인수를위한 실수 부 착물들에 대한) 실제 부분 (계산 4.81을 ) 후 항복 층, 4 .

5
6
7

이 세 프로그램은 단일 리터럴로 구성되어 있으며 정확히 예상대로 수행합니다.

.::::

리터럴 .0.5 의 약자이며 인수 및 반환 값을 초기화합니다. 정수 나누기 다이 애드의 ( :주 링크 인수) 오른쪽 인자 기본값 때문에 ::::계산 0.5 / 0.5 / 0.5 / 0.5 / 0.5를 수득 8 .

9

또 다른 리터럴.

EȮ<

모두 동일한 원자 E반환 인수의 모든 요소가 동일한 경우, 및 0 이 아니라면. 정수 인수 z[z]로 승격 되므로 암시 적 인수 0에 대해 1E리턴합니다 .

이제 출력 아톰 Ȯ1 을 STDOUT으로 인쇄합니다 . 그런 다음 less than atom을 사용하여 1 을 암시 적 인수 0 과 비교 합니다. 결과는 (1 <0) = 0 이며 프로그램이 끝나면 암시 적으로 인쇄됩니다.<

11 – 20

⁻GṘ

그리드 원자 G인수에서 시각적으로 만족스러운 테이블을 만들려고합니다. 일반 정수 인수 (여기서는 0 )의 경우 단순히 배열로 래핑합니다. 평면 동일하지 원자 내재적 인자 비교 0 (오른쪽 결과 [0] ) 산출 1 인자가 동일하지 않기 때문에. 표현 원자 인쇄 STDOUT에 그 결과를 리턴한다. 프로그램이 끝나면 최종 반환 값이 암시 적으로 인쇄되므로 결과는 11 입니다.

=`p`VV×`DQV

자체는 빠른 `동일한 왼쪽과 오른쪽 인수를 호출하여 모나드로 다이 애드을집니다. 먼저 =`암시 적 인수 0 을 자체와 비교 하여 1을 산출 합니다.

직교 제품 원자 p인수로리스트를 예상하고, 그래서 정수 조장 범위로 [1, ..., 1] = [1] . [1] 과 그 자체 p`의 데카르트 곱을 취하여 [[1, 1]]을 산출 합니다.

평가 원자는 V다음 문자열로 (숫자와 문자를 포함한) 모든 평면 배열을 전환 무항 젤리 프로그램과 같은 결과 문자열을 평가합니다. [[1, 1]] 을 먼저 [“11”] 으로 바꾼 다음 V현 을 회피하여 [11]을 산출 합니다. 한 번 더, V이 배열을 "11" 로 바꾼 다음에 그것을 돌려 11 을 산출 합니다.

이제 11에 11×`곱하면 121이 됩니다. 소수점 원자 변 (121)[1, 2, 1]고유 원자 제 파기 (1) 와 다시 한번, 그들을 연접 복귀 결과 정수로의 디지트들의리스트를 온 (12) .QV

~A~A~A~A~A~A~A~A~A~A~A~A~A

~는 IS 비트 NOT 원자이다. 2의 보수 산술을 사용하면 인수 z~ z =-(z + 1)에 매핑합니다 . A절대 값 원자이므로 -(z + 1) = z + 1을 매핑 합니다. 초기 반환 값 0 의 열세 사본 ~A(13) .

⁷ṾṾṾw

상수 는 개행 문자 '\ n'을 보유하고 인수 및 리턴 값을 초기화합니다.

uneval 원자는 그 인수의 스트링 표현 만들려고 Z 코드 이루어지는 젤리 프로그램 반환되도록 Z를 .

첫 번째 호출은 문자열 ""\ n "을 문자 그대로 리턴합니다 . 다음 호출은 한 쌍의 문자 리터럴 인 "" ","\ n "을 반환합니다 . 세 번째이자 마지막 호출 은 문자 리터럴의 quintuplet 인 "" "," ",",, "", "\ n"을 반환합니다 .

마지막으로, 윈도우 인덱스 원자는 w오른쪽 인수 추진 '\ n을' 문자열을 'N \ " 로 시작하고 문자열의 첫 번째 인덱스 찾아 "\ n을 "을 . 14를 반환합니다 .

⁴ḟ€⁴Ṁ

상수 16 입니다. 링크 filterfalse 각각은 ( ḟ€) 왼쪽 인수 16[1,…, 16] 범위로 승격 한 다음 해당 요소를 반복합니다.

각 요소를 들어 Z , ḟ⁴제 촉진 실행 Z를 으로 [Z] 다음의 발생 (존재하는 경우)을 모두 제거한다 (16) . 그러면 배열 [[1], [2],…, [14], [15], []]가 생성됩니다 . 여기서 마지막 배열은 16 이 포함되어 있으므로 비어 있습니다.

마지막으로 최대 원자 [15]를 선택합니다 .

mmmmċ

모듈 원자 m- 인자로 호출 X (어레이) 및 Y (정수)마다 보통 얻어 | Y가 | x의 th 요소 . 첫 번째 y y> 0 으로 시작하고 마지막 if y <0으로 시작 합니다. 그러나 y = 0 이면 x 와 반대 방향으로 연결된 값을 반환합니다 .

왼쪽 정수 인수 0 은 먼저 [0]으로 승격됩니다 . 첫 번째 사본은 [0] 을 자체와 m연결 하여 [0, 0]을 생성 합니다. 나머지 사본은이 결과를 [0, 0, 0, 0] 으로 변경 한 다음 [0, 0, 0, 0, 0, 0, 0, 0]으로 , 마지막으로 [0, 0, 0, 0, 0, 0으로 바꿉니다. , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] .

마지막으로 count atom ċ은 암시 적 인수 0 이 결과 배열에 나타나는 횟수를 계산하여 16을 반환 합니다.

ṭṭṭṭṭṭṭṭḍḄḄḄḄḄḄḄḄḄ

는 IS 원자와 오른쪽 하나는 왼쪽 인자를 추가합니다. 때문에 다음과 같은 이항하고, 모든 호출을 암시 인수 패스 0 에 대한 권리 인수로 . 첫 번째 호출은 [0, 0] , 두 번째 [0, [0, 0] , 여덟 번째 및 마지막 [0, [0, [0, [0, [0, [0, [0, [0, 0]]]]]]]] .

는 IS 가분성의 원자; 인수에 대해 XY , 그것을 반환 1 이고 , X는 로 나누어 Y , 0 이 아니라면. 는 정수에 대한 no-op이므로 구성된 배열의 각 정수로 나눌 수 있는지 0ḍḄ테스트 합니다. 0 은 그 자체로 나눌 수 있으므로 [1, [1, [1, [1, [1, [1, [1, [1, 1] 1]]]]]]]]]을 얻습니다 .

이제 이항 원자 는 평평한 배열에서 작동합니다. [a, b] 쌍의 경우 단순히 2a + b 를 반환합니다 . 앞에서 언급했듯이 정수에 대한 no-op입니다. 정수 인수 c[c]로 승격되고 , 어떤 기준 에서 [c] 는 단순히 c 입니다.

첫 번째 호출 [1, 1]3 으로 줄여서 [1, [1, [1, [1, [1, [1, [1, 3]]]]]] 을 산출 합니다. 다음 호출은 9 번 이 17을 반환 할 때까지 [1, 3] 에서 5로 , 다음으로 [1, 5] 에서 7로 줄 입니다.

+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ+Ṇ

는 IS 평면 논리 NOT 원자 암시 인수를 매핑 01 . +는 더하기 아톰이므로 18 개의 각 복사본이 +Ṇ이전 반환 값 (처음 0 ) 씩 증가합니다 . 전체 프로그램은 따라서 18 을 반환합니다 .

CNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNCNC

C보완 원자이며 인수 z1-z에 매핑합니다 . N부정 원자이며 인수 z-z에 매핑합니다 . 함께 z-(1-z) = z-1로CN 매핑 하므로 18 개의 복사본이 암시 적 인수 0-18바꿉니다 . 수율 의 최종 적용 .C1 - (-18) = 19

ĖḌĖḌ

열거 된 원자 Ė인덱스 - 값 쌍을 생성하는 배열의 항목을 열거한다. 암시 적 인수 0 으로 촉진된다 [0] 다음, Ė수득 [1,0] . undecimal 원자 수득베이스 (10)로부터 평면 어레이 정수로 변환 [10] 이 특정한 경우.

두 번째 통화 Ė변환 [10] 으로는 [1, 10] , 두 번째는 최종적으로 변형 [20] .

21 – 30

ṫṣȦJṫȦ⁸ȦJ

꼬리 원자 (a 다이 애드)에서 시작 인덱스는 왼쪽 인자의 포스트 픽스를 선택 좌측 정수 인수 촉진 오른쪽 인수에 지정 (1 기반 모듈러) X[X]가 . 로 설정 두 인수로 호출하면 0 , 반환 [0] .

있는 모든 원자는 Ȧ반환 1 인자가 truthy이며, 어떤 깊이에서 더 제로 포함되지 않는 경우는 0 , 그렇지 않으면. 여기서는 단순히 암시 적 인수 0 을 반환하는 ID 함수로 사용합니다 . atom 에서split은 오른쪽 인수 0이 발생할 때 왼쪽 인수 [0] 을 분할 하므로 여기에서 [[], []]를 리턴 합니다.

인덱스의 원자는 J반환 값의 요소를 버리고 범위 산출의 인덱스로 대체 [2, 1] 이 특정한 경우. Ȧ모두는 이전 작업 때문에 감소 [1,2] 수득 마지막 인덱스에서 시작 접미사로 [2] .

닐라 딕 링크에서 상수 []를 유지 합니다. 이것은 분석 할 수없는 nilad입니다. 즉, 어떤 식 으로든 체인에 맞지 않습니다. 결과적으로 이전 리턴 값 ( [2] )이 STDOUT에 인쇄 된 후 nilad의 값 ( [] )으로 대체됩니다 .

[] 가 거짓 이므로 0으로Ȧ 변환합니다 . 원자 촉진 0[0] , 다음의 인덱스 (목록 반환 [1] 프로그램이 완료 될 때 내재적으로 인쇄된다).J

22

또 다른 리터럴. Repdigits는 사용하기 가장 좋은 장소 인 것 같습니다.

“@ṃ»

이것은 Jelly의 내장 문자열 압축을 사용합니다. Jelly의 코드 페이지에서 @ 의 색인 은 64220 이며 문자열 리터럴은 250 개의 다른 문자를 포함 할 수 있으므로 먼저 250 × 65 + 220 = 16470 의 정수를 계산합니다 .

16470 은 3으로 나눌 수 있으므로 몫 16470/3 = 5490 은 인쇄 가능한 ASCII 문자 또는 줄 바꿈을 인코딩합니다. 이들 중 96있다 = 96 × 57 + 18 5490 우리는 0 기반 인덱스에있는 인쇄 가능한 ASCII 문자를 해독 한 것을 의미하는 18 인, '2' .

우리는 남아있는 57 도로 나누어되는, 3 , 그래서 몫 3분의 57 = 19 = 96 × 0 + 19 0 기반 인덱스 인쇄 가능한 ASCII 문자 인코딩 (18) 이며, '3' .

이것은 0을 남긴다 ; 디코딩 프로세스가 중지됩니다. 생성 된 문자는 "23" 을 형성하기 위해 연결됩니다

!ḤḤ!

계승 원자 !내재적 인자 온 0 으로 1 . 의 두 호출 unhalve 원자 회전 1224 . 마지막으로 4를! 계산합니다 ! = 24 .

³HH

명령 행 인수가 없으면 상수 ³100을 보유 합니다. H턴을 두 번 호출하면 10050으로 , 5025 로 바뀝니다 .

ØaM

상수 Øa는 소문자 알파벳을 보유합니다. 최대 원자는 M최대의 모든 항목 인덱스를 산출하고, 이후 , Z가 가장 소문자 인 결과이다 [26] .

;;;;;;;;;;;;;;;;;;;;;;;;;;;¬¬ḅ¬

연결 원자 의 26 개 사본은 ;초기 반환 값 0 과 기본 인수 0 의 26 개 인스턴스를 연결하여 27 개의 0으로 구성된 배열을 만듭니다.

¬는 IS 논리 NOT 원자 그래서 추가 1 제로의 배열. 다음 ¬은 배열의 모든 요소를 ​​무효화하여 27 개의 요소와 1의 배열을 남겨 둡니다.

는 IS unbase 원자 및 정수형 오른쪽 인수로 지정된베이스로부터 왼쪽 인자의 숫자 어레이를 변환한다. ḅ¬단항에서 정수로 변환하므로 간단히 합계를 수행합니다. 27 사람의 배열의 경우,이 반환 27 .

irið8c

atom 의 인덱스는i 왼쪽 인수 0[0]으로 승격 한 다음 해당 배열에서 오른쪽 인수 0 의 인덱스를 찾아 1을 산출 합니다.

범위 원자 r그것으로부터 오름차순 또는 내림차순 범위 오른쪽 하나 인수 남은 구성한다. 올바른 인수는 암시 적 인수 0 이므로 [1, 0]이 됩니다. 두 번째 호출은 [1, 0] 에서 i인덱스 0 을 찾아 2를 산출 합니다.

ð새로운 dyadic 체인을 시작합니다. 앞의 체인은 닐라 스틱이므로이 체인의 왼쪽과 오른쪽 인수는 첫 번째 체인의 반환 값 ( 2 )과 같습니다. c조합의 원자이다. 왼쪽 인수 8 및 오른쪽 인수 2 를 사용하면 8 요소 세트의 고유하고 정렬되지 않은 2 조합을 모두 계산하여 8C2 = 8! / (6! 2!) = 28을 반환 합니다.

⁶ḲĠṂ°İṂĊ

상수 는 공백 문자를 보유하고 인수 및 리턴 값을 ''로 설정 합니다. atom 이라는 단어 는 문자 '' 를 단일 문자열 "" 로 승격하고 공백으로 분할하여 [[], []]를 생성 합니다.

기는 원자 Ġ그룹 동등한 모든 요소 인덱스. 마지막 반환 값의 두 요소가 같으므로 여기서 [[1, 2]]를 반환 합니다. 최소 원자 배열이 최소한 (유일한) 요소 추출 얻었다 [1, 2] .

원자 °수득 라디안 60 진수도에서 모두 정수 변환 1 ° × 2π / 360 = π / 180° × 2π / 360 = π / 90 2 . 원자 수득 곱셈 역수를 취 180 / π ≈ 57.390 / π ≈ 28.6 .

그런 다음 다시 한 번 더 최소값을 취하여 28.6을 생성 합니다. 마지막으로, ceil atom Ċ28.629 로 변환 합니다.

œṡ¹ẆẆTUṖṖṖṖP

신원 원자 ¹반환 0을 암시 인수에 0 . 주위 분할 원자 œṡ인자 (둘 모두 촉진 0 까지) [0] , 다음 분할 [0] 와 동일한 인접 서브 어레이 주위 [0] . 이것은 [[], []]를 산출 합니다.

슬라이딩 윈도우 원자 인수의 모든 인접 서브 어레이를 구축한다. 첫 번째 인스턴스는 [[], []][[[]], [[]], [[], []]]로 변환하고 두 번째 인스턴스는 [[[]], [[]], [[]를 변환합니다. , []]]
[[[[]]], [[[]]], [[[], []]], [[[]], [[]]], [[[]], [ [], []]], [[[]], [[]], [[], []]]] .

진실 원자 Ttruthy 모든 요소 인덱스를 나열. 첫 번째 수준의 배열이 비어 있지 않으므로 [1, 2, 3, 4, 5, 6]이 됩니다. 꺼꾸로의 원자 U수득 배열이 반전 [6, 5, 4, 3, 2, 1] .

아톰 의 4 개 사본은 마지막 4 개의 요소를 제거하여 [6, 5]로 남겨 둡니다 . 마지막으로 원자 P는이 배열을 30 으로 변환합니다 .

31 – 40

ȷ½RṪ

ȷ1 × 10 3 = 1000 의 줄임말입니다 . 제곱근 원자 ½수득 31.6 1, 범위 원자 R에 변환을 [1, ..., 31] . 마지막으로 꼬리 원자가 마지막 요소를 추출하여 31을 반환 합니다.

LµdddddµFL

길이 원자 L내재적 인자 촉진 0[0]을 수득 한 후 길이를 얻어 1 . µ새로운 모나 딕 체인을 시작하고 결과 1 이 인수가됩니다.

인수를 들어 , XYdivmod의 원자 d수율 [X / Y %의 Y를 X] . 각 호출은 y = 1 이므로 결과는 항상 [x, 0] 입니다.

첫 번째 호출은 x = 1로 시작 하여 [1, 0]을 생성 합니다. d정수에서만 작동하므로 후속 호출에서 벡터화됩니다. 두 번째 호출은 [[1, 0], [0, 0]] , 세 번째 [[[1, 0], [0, 0]], [[0, 0], [0, 0]]] , 그리고 다섯 번째와 마지막 하나는 단일 0과 31 개의 0을 포함하는 깊이 5의 배열입니다.

µ한 번 더 새로운 모나 딕 체인을 시작하고 이전의 배열이 인수가됩니다. 평면 원자 F단일 한 31 제로의 평면 배열을 산출이 배열 unnests. 마지막으로 L결과의 길이를 취하여 32를 반환 합니다.

33

다른 대표, 또 다른 리터럴.

WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWŒḊ

원자 의 각 인스턴스는 인수 z[z] 로 변환합니다 . 초기 반환 값 0 , 34 개 인스턴스 함께 수득 [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[0] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] . 마지막으로 깊이 원자 ŒḊ는 결과 배열의 최대 깊이를 계산하여 34를 반환 합니다.

ẇɓæ«æ«æ«æ«æ«|æ«|

창이 존재 원자 인수 (모두 기본적으로 모두 촉진 0 까지)을 [0] ** [0] **의 연속 서브 어레이 인 경우는 다음 시험 [0] . 그렇게하므로 1을 반환합니다 .

ɓ새로운 dyadic 체인을 시작합니다. 앞의 체인은 닐라 스틱이므로이 체인의 왼쪽 및 오른쪽 인수는 첫 번째 체인의 반환 값 ( 1 )과 같습니다. 체인은 비트 시프트 왼쪽 ( æ«)과 비트 OR ( |) 의 두 개의 서로 다른 이원자 원자를 사용 합니다.

3 개 이상의 다이어 드로 시작하는 이차원 체인은 처음에 체인의 인수로 첫 번째 다이어 드를 호출합니다. 여기에 1 << 1 = 2가 부여 됩니다. 6 개의 후속 다이어 드는 쌍으로 그룹화되며 (소위 포크 ), 가장 오른쪽 다이어 드는 체인의 인수로 먼저 호출되고, 가장 왼쪽 다이어 드는 이전 리턴 값으로 양쪽에서 호출됩니다.

들면 æ«æ«, 우리가 얻을 2 << (1 << 1) (2) << 2 = 8 = . 그리고, æ«æ«계산 8 << (1 << 1) << 2 = 8 = 32 . 이제, |æ«우리를 얻는다 32 | (1 << 1) = 32 | 2 = 34 .

마지막으로 후행 |후크 처럼 작동 하며 이전 반환 값을 왼쪽 인수로, 체인의 오른쪽 인수를 오른쪽으로 호출하여 호출됩니다. 이것은 34 | 1 = 35 .

⁹ṚḢ²

두 번째 인수가 없으면 상수 256을 유지 합니다. 역방향 원자 촉진 (256) 어레이로 [2, 5, 6] 하고 수득 반전 [6, 5, 2] . 그런 다음 머리 원자 는 첫 번째 요소를 추출하고 사각형 원자 ²는 ** 6² = 36 *을 반환합니다.

‘‘‘0‘‘‘‘‘‘‘

증가 원자 에 의해 인수를 증가 1 이므로 ‘‘‘최초 리턴 값 설정 0 으로 3 . 다음 0 은 해석 할 수없는 nilad입니다. 즉, 어떤 식 으로든 체인에 맞지 않습니다. 결과적으로 이전 리턴 값 ( 3 )이 STDOUT에 인쇄 된 다음 nilad의 값 ( 0 )으로 대체됩니다 .

다음 7 개 사본은 07 로 바꾸고 프로그램이 완료되면 암시 적으로 인쇄됩니다.

’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ạ

감량 원자 하여 인자를 감소 하나 , 그렇게 서른여덟 복사 초기 반환 값을 설정 0 으로 -38 . 차분 절대 원자 사이의 차이 계산 부호 -38 및 암시 적 인수 0 , 반환 38 .

-____---__________

--1 의 줄임말이며 링크의 인수와 반환 값을 -1로 설정 합니다. 각각 _은 2 차원 빼기 원자 의 인스턴스이며, 오른쪽 인수가 없는 경우 기본값은 -1 입니다.

우선, -____-계산 (-1) - - (-1) - (-1) - (-1) = 3 (-1) . 다음 -1 은 구문 분석 할 수없는 nilad이므로 이전 리턴 값 ( 3 )이 STDOUT에 인쇄 된 다음 nilad의 값 ( -1 )으로 대체됩니다 .

다음으로 (-1)-(-1) = 0을-_ 계산합니다 . 여기서 리터럴 은의 왼쪽 인수를 설정 하고 반환 값을 오른쪽으로 사용합니다. 다음 9 개의 복사본은 반환 값에서 기본 인수 -1 을 빼고 9를 산출 하며, 프로그램이 끝나면 암시 적으로 인쇄됩니다.-__

”(O

”(문자 리터럴이고 서수 원자 O는 유니 코드 코드 포인트를 조회하여 40을 생성 합니다.

41 – 47

⁵ḶxḶ⁵ị⁵ḶxḶḣṢ

세 번째 명령 줄 인수가 없으면 상수 10 입니다. unlength 원자가 특히 0으로부터의 범위를 생성 [0, ..., 9 인수 (10) 의 양측에, 장소에서 반복 원자 x. 후자는 왼쪽 인수의 요소를 오른쪽 인수의 반복과 일치시키고 각 요소를 해당 횟수만큼 반복합니다. 함께 [0, ..., 9 왼쪽과 오른쪽 인자, 우리는 따라서 등 제로 제로 하나씩 두 개의 조로를 얻을

로 인덱스 원자 는 하나 왼쪽에서 지정된 인덱스 오른쪽 인수의 요소를 가져온다. 왼쪽 인수 10 ( 왼쪽)과 오른쪽 인수 [1, 2, 2, 3, 3, 3, 4, 4, 4, 4,…, 9] (이전 결과)를 사용하면 4가 됩니다.

이 지점까지의 체인 다음에 는 구문 분석 할 수없는 nilad가 이어 지므로 이전 리턴 값 ( 4 )은 STDOUT으로 인쇄되고 리턴 값은 10 으로 설정되며 나머지 체인은 평소와 같이 구문 분석됩니다.

이전과 같이 ⁵ḶxḶ배열 [1, 2, 2, 3, 3, 3, 4, 4, 4, 4,…, 9] 가 산출됩니다 . 이번에 는 인수 10 에서 정렬 된 원자 를 호출하여 10[1, 0]으로 승격 한 다음 정렬하여 [0, 1]을 생성 합니다. 2 차원 헤드 아톰은 이제 결과에서 왼쪽 으로 길이 01 의 접두사를 가져 와서 [[], [1]]로 남겨 둡니다 . 인쇄시 1 만 표시됩니다.

⁽{ʂ%⁽{}

다음 두 문자는 숫자 리터럴을 구성합니다. 경우 JK는 젤리의 코드 페이지와 자신의 코드 포인트입니다 (J, K) <(124, 250) , 우리는 정수를 얻을 1,001 + 부 (250j) + K를 . '{' , '}''ʂ' 의 코드 포인트 는 123 , 125167 이므로 왼쪽 리터럴은 1001 + 250 × 123 + 167 (= 31918)로 평가되고 오른쪽 코드는 1001 +로 평가됩니다 250 × 123 + 125 (= 31876) .

왼쪽 정수가 오른쪽 정수의 두 배보다 작기 때문에 결과는 (… + 167) % (… + 125) = (… + 167)-(… + 125) = 167-125 = 42 입니다.

ẊẠżv©żvżvżvọ®®Ạżvżvżvọ®

셔플 원자 인수의 요소의 순서를 무작위로; 숫자 인수 z 는 미리 [1,…, z] 범위로 승격됩니다 . 암시 적 인수의 0 이 범위는 비어 있고 수율 [] . 모든 원자는 반환 1 인자의 모든 요소가 truthy 경우 0 이 아니라면. 빈 배열에는 잘못된 요소가 없으므로 여기에서 1을 반환 합니다.

원자가 있는 zipż (다이어 드)은 인수 xy를 취하고 [x, y] 쌍을 바꿉니다 . 정수 xy의 경우 , 이것은 단순히 [[x, y]] 를 생성하므로 ż인수 10 (암시 적 인수) 과 함께 호출 된 이 특정 은 [[1, 0]]을 반환합니다 . 2 진 eval atom v은 왼쪽 인수의 모든 평면 배열 (숫자 및 문자 만 포함)을 문자열로 바꾸고 결과 문자열을 오른쪽 인수를 프로그램의 인수로하여 모나드 젤리 프로그램으로 평가합니다. [ "10"] 이후리터럴로만 구성된 경우, 이는 [10] 의 올바른 인수를 무시하고 v결과를 가져 옵니다 .

사본은 빠른 ©에 부착 v레지스터에 그 결과를 복사합니다. 나중에 리콜 아톰 ®(nilad)이 발생 하면 레지스터에서 [10] 을 가져옵니다 .

żv이전과 같이 다음 세 개의 작업 사본이 [10] - [[10, 0] - [100] -…- [10000]으로 맵핑 됩니다. 순서 원자 의 왼쪽 인자 그래서 여기 오른쪽 하나 나누어 시험 횟수는 그것의 계산 순서 (10) (과 인출 ®에) 10000 = 10 (4)를 산출한다 [4] .

다음 ®은 구문 분석 할 수없는 nilad이므로 이전 반환 값 ( [4] )이 STDOUT에 인쇄 된 다음 nilad의 값 ( 10 )으로 바뀝니다 . 다음에 적용 하여 1을 산출 합니다. (이 시점에서 닐 라드 다음에 다이어 드가 파싱 될 수 있기 때문에 필요합니다.)

이전과 같이 żvżvżv현재 반환 값에 3 개의 0을 추가하여 1[1000] 으로 바꿉니다 . 마지막 ọ®의 순서로 계산한다 (10)1,000 = 10 (3) , 및 도 3은 프로그램이 완료 될 때 STDOUT에 출력된다.

44

또 다른 대표, 또 다른 리터럴.

111111l11&K1111111Kl11&

가장 먼저 리터럴 111111은 인수 및 초기 리턴 값을 111111로 설정 합니다. 다른 행은 1리터럴입니다.

l는 IS 대수 올바른 지정된베이스의 왼쪽 인자의 로그를 계산 원자. 올바른 인수 11을 사용 하여 111111 에서 호출 하면 log 11 111111 ≈ 4.85가 표시 됩니다.

atom 이라는 단어K 는 숫자 / 문자 z[z]로 승격 한 후 공백에서 목록 인수를 결합합니다 . 여기서는 단순히 링크의 인수 111111[111111] 로 바꾸는 데 사용합니다 . (여기서는 배열이 필요하지 않지만 동일 원자가 부족합니다.) 비트 AND 원자 &는 반환 값을 양쪽으로 가져오고 필요한 경우 정수로 변환하고 비트 AND를 계산합니다. 이 특정 경우에는 [4.85 & 111111] = [4 & 111111] = [4]를 반환합니다 .

다음 1111111은 구문 분석 할 수없는 nilad이므로 이전 반환 값 ( [4] )이 STDOUT에 인쇄 된 다음 nilad의 값 ( 1111111 )으로 바뀝니다 . K그런 다음이 정수를 [1111111] 로 바꿉니다 . (이것은 다시 한 번 요구되지는 않지만,이 시점에서 닐 라드 다음에 다이어 드를 파싱 할 수 있습니다.)

이전과 같이 로그 11 1111111 ≈ 5.81을l11 계산 한 다음 [5.81 & 111111] = [5 & 111111] = [5] 를 반환합니다 .&

,SS
ỊỊ,ÇS
ÇÑÇÇÇÑ

여러 사용자 정의 링크로 구성된 유일한 프로그램입니다. 마지막 링크는 기본 링크이며 프로그램이 시작될 때 실행되며 나머지 링크는 도우미 링크입니다. quick은 Ç항상 현재 링크 위의 링크를 참조하고이를 모나드 방식으로 실행합니다. 마찬가지로, quick은 Ñ항상 현재 링크 아래 의 링크 (래핑)를 나타내며 모나 디식으로 실행합니다.

상단 링크는 페어 원자 ( ,인수 xy[x, y] 로 바꾸는 다이아 드) 와 합계 아톰 ( S정수 인수 z[z] 로 승격시키고 배열 인수를 더하는 모나드)로 구성 됩니다. 링크가되면 ,SS정수 인자로 호출 N , 그것은 계산 Σ [N, Σn = Σ [N, N] = 2N를 .

중간 링크는 위의 원자, 위에서 언급 한 quick Ç무의미한 원자로 구성 됩니다. -1 ≤ z ≤ 1 인 숫자 인수 z의 경우 1생성 하지만 다른 모든 경우 0 입니다. 정수 인수 n에 두 번 적용하면 첫 번째 ( 두 번째 입력) 의 출력 이 항상 중요하지 않으므로 본질적으로 1로 대체합니다 . 그런 다음이 결과는 인수 n으로 호출 된 반환 값과 쌍을 이루고 결과 쌍은로 줄어 듭니다 . 전체적으로 우리는 계산ÇSΣ [(| n | ≤ 1) ≤ 1, 2n] = Σ [1, 2n] = 2n + 1 입니다.

이 두 헬퍼 링크가 있으면 기본 링크는 이제 2 진 숫자를보고 음수가 아닌 정수를 구성 할 수 있습니다. 초기 반환 값이 0 이면 체인 ÇÑÇÇÇÑ은 최종 결과를 계산합니다 ((((((0 × 2 + 1) × 2) × 2 + 1) × 2 + 1) × 2 + 1) × 2 = (((5 × 2 + 1) × 2 + 1) × 2 = 46 입니다.

ÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆnÆn

다음 주요 원자 인수보다 확실히 큰 가장 작은 양의 소수를 발견한다. 초기 리턴 값이 0 인 경우 , 15 번의 호출은 Æn15 번째 소수 ( 47) 를 계산합니다 .


7
나는 하루 종일 Neim의 38을 따라 잡으려고 노력한 다음 아래로 스크롤하여 이것을 보았습니다. 도전은 받아 들였다!
얽히고 설킨

1
TL; DR 47까지 세고 Jelly의 마법사입니다.
계단식 스타일

챌린지에서 요청 된 모든 "원자"단일 바이트입니까? 그렇다면 어떤 인코딩입니까?
M.Herzkamp 2016 년

4
@ M.Herzkamp Jelly는 자체 코드 페이지를 사용 합니다 .
Dennis

1
처음으로 설명을 자세히 읽었습니다. 정말 인상적입니다. 이들 중 일부는 말도 안됩니다 :-)
Stewie Griffin

62

브레인 퍽 , 2 스코어 255 144 10 바이트

... 응, 8 문자 (타르타르가 타르 타르트)를 가지고 있기 때문에 가장 좋은 아이디어는 아니지만 가능한 한 많은 것을 보자. 이것이 가능한 전부라고 생각합니다. : P 이 답변은 brainfuck이 사용하는 8 개의 문자 중 6 개를 보여줍니다. 다른 2 개 ,는 입력이고 .출력은입니다.

+
>--[<->-]

온라인으로 시각화하십시오!

설명

모든 숫자는 테이프의 시작 셀에 작성되어 저장됩니다. 몇몇 인터프리터에서 구현되지 않은 랩핑 셀에 크게 의존합니다.

1 :

[ 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
  ^

+  increment the current cell

[ 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
  ^

2 :

[ 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
  ^

>  move to the next cell
-- decrement the current cell twice

[ 0 |254| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
      ^

[  while the current cell is not 0
<  move to the previous cell
-  decrement the current cell

[255|254| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
  ^

>  move to the next cell
-  decrement the current cell

[255|253| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
      ^

]  repeat while the current cell is not 0

...

[ 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
      ^

[ 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
  ^

[ 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
      ^

5
이제 뇌에서해라. : P
DJMcMayhem

38

Neim , 점수 38, 327 바이트

1: 𝔼
2: 2
3: 3
4: 4
5: 5
6: 6
7: 7
8: 8
9: 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: 𝐓0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻0𝐓𝔻
36: ℂ𝐋𝐠𝐋𝐠𝐋𝐠𝐋𝐝𝐬𝕏𝐬
37: α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊α𝕊
38: 𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝔸𝐥

설명:

  • 1의 경우 '평등 검사'토큰을 사용합니다. 여기서 Neim이 빈 입력에서 팝업을 시도하면 0을 얻습니다.
  • 2에서 9까지 숫자 리터럴 만 사용합니다.
  • 10에서 32까지 Neim은 실제로 1 바이트 상수를 가지고 있습니다 (예, 미쳤습니다).
  • 33의 경우 증가 명령 만 사용합니다. 첫 번째 바이트에서 Neim은 무언가를 팝하여 증가시킬 수 있지만 입력이 비어 있기 때문에 기본값은 popping 0입니다.
  • 34의 경우 동일한 접근 방식을 사용하지만 감소하고 절대 값을 취합니다.
  • 35의 경우, 우리는 제로 계승이 하나라는 사실을 이용하고 있습니다. 그리고 우리는 하나를 복제하고 반복해서
  • 36의 경우, 우리는 0과 0의 공통 우선 순위 를 확인 하는 데 사용 합니다. 그러면 1을 푸시합니다. 그런 다음을 사용하여 첫 번째 소수를 얻습니다. 𝐋단 2 개만 포함하는 싱글 톤 목록이됩니다. 그런 다음 가장 큰 요소 ( 𝐠) 를 가져 와서 2를 숫자로 푸시합니다. 그런 다음 목록을 얻을 때까지이 프로세스를 반복합니다 [2 3 5 7 11]. 그런 𝐝다음 델타를 계산하는 데 사용 하여 list 결과를 얻습니다 [1 2 2 4]. 다음으로 𝐬합계 9를 구하는 데 사용하고 0에서 9까지의 배타적 범위를 계산하여 결과를 얻습니다 [0 1 2 3 4 5 6 7 8]. 마지막으로 𝐬다시 37을 얻는 데 사용됩니다.
  • 37의 경우 α음수를 나타내는 상수이며 반복적으로 밀어 빼기 (빈 입력에서 팝을 시도 할 때 0이 푸시된다는 사실을 악용)
  • 38의 경우 빈 입력에 기본값 0을 다시 사용하여 0을 계속 추가하여 긴 목록을 만든 다음 길이를 계산합니다.

여기에서 시도 할 수 있습니다


3
당신은 약 36-37의 무언가를 섞었습니다.
Outgolfer Erik

2
그래도 1 바이트 이상으로 인코딩 된 특수 문자가 아닌가? 그렇다면 mothereff의 바이트 카운터에 따라 860 바이트가 되고 챌린지 규칙은 all characters must be encoded using a single byte in the language you choose. Neim은 이러한 특수 문자를 1 바이트로만 인코딩합니까? 어떻게?
Hankrecords 2018 년


2
1아직 캐릭터를 사용하지 않았습니다. 확실히 당신은 그것을 일부 사용할 수 있습니까?
Bergi

34

파이썬 2, 15

여기에 더 많은 것을 찾는 시작이 있습니다.

팁이 15 세가 된 레오에게 감사합니다.

[[[]]>[]][[]>[]]>>[[]>[]][[]>[]]

2

import math
print'%i'%math.pi

((()<())<())<<((()<())<())<<((()<())<())

5

6

7

8

9

11^1 

33/3

4--4--4

__debug__+__debug__+__debug__+__debug__+__debug__+__debug__+__debug__+__debug__+__debug__+__debug__+__debug__+__debug__+__debug__

q=""=="";qq=q=="";qqq=~q*~q*~q;~qqq*~q*~qq

0xF

2
당신은 사용할 수 있습니다 -~-~-~-~-~-~-~-~-~[[]==[]][[]<[]](10)과 0xD낮은 총 바이트 수를위한 13
OVS

''is''다른 숫자를 만들기 위해 참으로 평가 되는 사실을 어떻게 사용할 수 있습니까?
Notts90 2016

@ Nots90 불행히도 나는 작업을 벗어났습니다. 당신이 새로운 숫자를 만드는 방법을 찾거나 부울 경우 알려주세요
Sriotchilism O'Zaic

1
14는 닫는 괄호가 없습니다 :((()<((),))|(()<((),))<<(()<((),))|(()<((),))<<(()<((),))<<(()<((),)))<<(()<((),))
TemporalWolf

1
기록을 위해, 최신 개정판은 다음에서 사용되지 않은 string.printable:c, j, k, l, s, v, w, y, z, A, B, C, D, E, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, !, #, $, &, ., :, ?, @, \\, `, {, }, \t, \r, \x0b, \x0c
wnnmaw

23

Japt , 448 바이트, 42 점

Shaggy , ETHproductionsOliver 간의 대규모 협력 .

v
y
Íà
Qiiii)iiii)âQ
ÂHq
LÁL
´Vn´VnVnVn
8
9
A
B
C
D
E
F
G
J-----J---J---J---J
[¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾]x
;Iìw
~~½e½e½e½e~½e½
++T+++T+++T+++T+++T+++T
22
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
4á
5²
°UU°°°U°°U°°U°°U°°U
»³³
7/¼
$'_____________________________b'$bb
ZµÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"aa
Sc
33
Mg011
##
6p
Rí í í í í è.
`¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥`l
¨N|N¹òò¹m···m|¹mò¹m···m|¹mò¹m···m|¹o
º¤¤*º¤*º¤
(Å<<(Å<<(Å<<(Å<<(Å<<(Å^(Å<<(Å<<(Å<<(Å^(Å
Y±Y¶YY±YY±Y±Y¶YY±YY±Y±Y¶YY±Y

다음과 같은 (유용한) 문자가 남습니다.

!%&,:=>?@OPWX\dfhjkrstuz{}¡¢£¦§©ª«¬®¯¸ÀÃÆÇÈÐßãäåæçéêëîïñóôõö×øÿ

설명

시작하기 전에 Japt에 대해 알아야 할 몇 가지 사항을 자주 사용했습니다. 첫 번째로, Japt에는 대문자로 지정된 6 개의 변수가 입력 용으로 예약되어 U-Z있습니다. 해당 변수를 통해 입력이 전달되지 않으면 모두 기본값이로 설정됩니다 0. 두 번째는 이 팁 에서 다룹니다 .

스 니펫을 클릭하여 온라인 통역사 에서 사용해보십시오 .


v

수치에 적용되는 경우 상기 v방법은 정수 얻어 N 인수로를 리턴 1 개수의 배수 인 경우 , N , 0 이 아니라면. 경우 , n은 에 그것을 다음 기본값으로 제공되지 않습니다 2 . 0 (의 기본값 U) 2 로 나눌 수 있기 때문에 1이 됩니다.


y

첫 번째와 매우 유사합니다. 숫자에 적용될 때, y메소드는 정수 n 을 인수로 취하여 두 숫자의 GCD를 리턴합니다. 경우 , n은 에 그것을 다음 기본값으로 제공되지 않습니다 2 . 때문에 0 으로 나누어 2 , GCD (0, 2) 우리에게주는 2 .


Íà
Í바로 가기입니다 n(2)또는 2- this. 우리가 아무런 입력이 없기 때문에, 우리는 기본 this0에 어떤 결과 2-0 = 2.

à의 조합 수 [1...this]를 반환합니다. 3 을 반환합니다.


Qiiii)iiii)âQ

Q기본값은 작은 따옴표입니다. i문자열에서 처음에 다른 문자열을 삽입합니다. # 3 에서 설명한 것처럼 각각 iiii).i("i".i("i"))JS 와 동일 하므로 i문자열의 시작 부분에 두 개의 사본을 삽입 합니다. 이 작업을 두 번 수행하면 문자열이 iiii"있습니다. âQ그런 다음을 시뮬레이션 하여 문자열 .search(Q)에서 첫 번째 색인 인 4를 제공 합니다."


ÂHq
H32 의 상수입니다 . q정수 n 을 인수로 취하는 메소드를 숫자에 적용하면 해당 숫자 의 n 번째 근을 리턴합니다 . 경우 n은 기본값을 제공하지 않는 것입니다 (2) 그래서 Hq우리에게 약 32의 제곱근 제공 5.6568을 . Â에 대한 지름길 ~~은 결과를 바닥에 5로 제공합니다 .


LÁL
L사전 설정되어 (100) , 및 Á바로 가기이다 >>>(비트 단위 우측 시프트 제로 충진). (오른쪽 피연산자 랩 모드 32) 100>>>100와 동일하며 6 입니다.100>>>4


´Vn´VnVnVn

앞에서 언급했듯이 V기본값은 0 입니다. ´--연산자 의 지름길 이므로 코드는 다음 JS와 같습니다.

(--V).n((--V).n(V.n(V.n())))

X.n(Y)Y-X 또는 -X + Y 와 동일하고 ; 첫 번째 --V-1을 반환 하고 두 번째는 -2를 반환 하므로 이것은 -(-1) + (-(-2) + (-(-2) +-(-2)))와 같습니다 . 단순화하면 1 + 2 + 2 + 2 = 7이 됩니다.


8
9

말 그대로, 89 .


A
B
C
D
E
F
G

이들에 대한 상수 (10) - (16) 포함.


J-----J---J---J---J

J-1 로 사전 설정되어 있습니다. Japt 인터프리터는 어떻게 든 이것을 올바르게 구문 분석 할 수 (J--) - (--J) - (--J) - (--J) - (--J)있습니다. 좀 더 수학하면, 이것은 (-1)-(-3)-(-4)-(-5)-(-6) 또는 -1 + 3 + 4 + 5 + 6 = 17과 같습니다. .


[¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾]x

¾추측 할 수 있듯이에 대한 바로 가기입니다 .75. 우리는 24 개 사본 넣어 0.75 다음으로 합계 배열에 x제공 * 24 = 18 0.75 .


;Iìw

나는 이것이 내가 가장 좋아하는 것 같아요. ;프로그램 시작시 일부 Japt 상수 값이 변경됩니다. 그것은 않고 I있다 (64) , 그러나 그것으로, I이다 (91) . ìw그것을 숫자의 목록으로 변환하고 목록에서 실행 w하여 배열을 반대로 한 다음 숫자로 다시 변환하여 19 을 얻습니다 .


~~½e½e½e½e~½e½
½에 대한 바로 가기입니다 .5. e숫자 x 에서 x 는 인수 y 를 받아서 x * 10 y를 반환합니다 . 따라서 계산 체인은 다음과 같습니다.

           ½e½     1.5811  (.5 * sqrt(10))
          ~       -2
        ½e         0.005  (.5 * (10 ** -2))
      ½e           0.5058
    ½e             1.6024
  ½e              20.0138

그리고 마지막 ~~은 이것을 정수로 나누고 20 의 결과를 산출합니다 .


++T+++T+++T+++T+++T+++T
T0 으로 사전 설정되어 있습니다. ++JS와 Japt의 증가 연산자입니다. T+++T로 구문 분석 (T++) + T되지만 ++T+++T로 구문 분석 (++T) + (++T)되므로 JS 코드와 동일합니다.

(++T) + (++T) + (++T) + (++T) + (++T) + (++T)

결과는 1 + 2 + 3 + 4 + 5 + 6 이며, 합계는 21 입니다.


22

리터럴 22 .


ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

Ä에 대한 바로 가기 +1이므로 간단히 23 1 초입니다.


이의 순열의 수를 발견 [1, 2, 3, 4]하고, 4! = 24 .


²의 지름길 p2은 숫자를 2의 거듭 제곱으로 올립니다. 5 ** 225 입니다.


°UU°°°U°°U°°U°°U°°U

°++연산자 의 바로 가기 이거나 구문 분석 할 수없는 경우 + +입니다. 앞에서 언급했듯이 입력이 없으면 U기본값은 0 입니다. 그래서 코드에 해당 (++U), (U++) + + (++U) + + (++U) + + (++U) + + (++U) + + (++U)매우 유사하다, # 17 : U제에 증가 1하고 반복적으로 증분하고, 최종 결과가되도록 첨가하여 1 + 3 + 4 + 5 + 6 + 7 = 26 .


»³³

³p인수가 3 인 메소드 의 단축키입니다 . 그러나 왼쪽 괄호 바로 뒤에 소문자가 나타나는 경우 ( »가는 바로 가기 ((임) 문자열이됩니다. 이를 통해 메소드에 전달되고 함수로 호출됩니다 (예 : 로 매핑 .p(3)). 그러나이 경우에는를 ("p",3)반환 3한 다음의 거듭 제곱 3( p수에 적용 할 때의 거듭 제곱 방법)으로 올리면 27이 됩니다.


7/¼

¼, 아마 당신이 지금 알고 있듯이, 바로 가기 .25이므로 7 / 0.25 = 28을 계산 합니다.


$'_____________________________b'$bb

$기호로 싸인 것은 순수한 JavaScript로 취급되므로 29 개의 밑줄과 뒤에 밑줄이 b있습니다. (포함하지 않는 $, '단일 문자열이 될 것입니다.)이 b문자열에 적용되는 방법은 해당 문자열 내에서 인수의 첫번째 인덱스를 반환합니다. 에서 설명하고있는 바와 같이 # 3 , 마지막은 b문자열로 변환, 그래서 우리의 첫 번째 인덱스를 잡아하고 b우리의 문자열에 29 .


ZµÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ

µ-=및에 É대한 바로 가기 입니다 -1. 효과는 30 개 사본 감산된다 -1 에서 0 준다 (30) .


"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"aa

# 29와 매우 흡사합니다. 이 a메서드는 문자열에 적용될 때 해당 문자열에서 인수의 마지막 인덱스를 반환합니다. 0- 인덱싱을 사용하면 a문자열 32 a의 마지막 인덱스 는 31 입니다.


Sc

S는 단일 공백으로 사전 정의되며 단일 c문자 문자열에서 32를 제공하는 문자 코드를 리턴합니다 .


33

리터럴 33 .


Mg011

MgNN 번째 피보나치 수를 반환합니다. 8 진수 0119 이고; 아홉 번째 피보나치 수는 34 입니다.


##

#다음 문자의 문자 코드를 반환합니다. 그 #자체 의 문자 코드는 35 이므로 우리의 작업이 특히 쉽습니다.


6p

p지수이며, 두 번째 인수가 없으면 기본값은 2입니다 . 따라서 이것은 6 ** 2 = 36을 인쇄합니다 .


Rí í í í í è.

이것은 다소 까다 롭습니다. R기본적으로 단일 개행 문자로 설정됩니다 (나중에 개행 문자가 중요 함). í문자열없이 인수없이 각 문자를 가져와 색인을 추가합니다. 다소 쓸모없는 변환이지만 5 번 반복 된 결과는 다음과 같습니다 ( R리터럴 개행 문자 대신 사용 )

R
R0
R001
R0010213
R001021304251637
R0010213042516370849210511112613314715

각 항목이 단순히 다음 항목의 접두사 인 방법에 관심이 있습니다. 그러나 어쨌든 마지막 부분 은 결과에서 è.몇 개의 일치 항목이 있는지 계산합니다 /./g. 문자열에는 38 개의 문자가 있습니다. 그러나 /./g개행 문자 이외의 문자 만 일치하므로 결과는 37 입니다.


¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥l

백틱은 압축 문자열을 표시하고로 압축 ¥해제합니다 ll. l문자열에 length를 제공 하므로 압축 해제 후에 38 이 제공 됩니다.


¨N|N¹òò¹m···m|¹mò¹m···m|¹mò¹m···m|¹o

우 소년, 이건 멍청이야 첫째, 우리는 생성 true¨N( ¨의미 >=, 그리고 N어떤 입력을 빈 배열 인), 그 다음에 그 전환 1과 함께 |N. 거기서부터 그것은 꽤 미쳤습니다.

ò    Inclusive range [0..1],            [0, 1]
 ò   making each an inclusive range.    [[0], [0, 1]]
m·   Join each on newlines.             ["0", "0\n1"]
·    Join on newlines.                  "0\n0\n1"
·    Split on newlines.                 ["0", "0", "1"]
m    Map each item X and index Y to     
 |     X | Y.                           ["0" | 0, "0" | 1, "1" | 2] -> [0, 1, 3]
m    Map each by 
 ò     inclusive range.                 [[0], [0, 1], [0, 1, 2, 3]]
m··· Same as before.                    ["0", "0", "1", "0", "1", "2", "3"]
m|   Bitwise OR thing again.            [0, 1, 3, 3, 5, 7, 7]
mò   Map each by inclusive range.       [[0], [0, 1], ..., [0, 1, 2, 3, 4, 5, 6, 7]]
m··· Same as before.                    ["0", "0", ..., "5", "6", "7"]
m|   Bitwise OR again.                  ["0"|0, "0"|1, ..., "5"|30, "6"|31, "7"|32]
                                        -> [0, 1, ..., 31, 31, 39]

( ¹s는 close-parens를 대체 한 것으로 생략되었습니다.) final o은 배열에서 마지막 항목을 팝하고 반환하여 39를 제공 합니다.


º¤¤*º¤

대부분 # 3 과 같은 트릭 입니다. 인수가 2 인 메소드 ¤의 단축키입니다 . 그러나이 경우 변환 된 코드는 또는 단순화 됩니다. 숫자를 밑이 2 인 문자열로 반환합니다 . 암시 적으로 다수의 승산으로 변환 4 주는 40 .s(("s", 2).s(2) * (("s", 2) * (("s", 2))))(2).s(2) * (2 * 2).s(2)"10"* (2 * 2)


(Å<<(Å<<(Å<<(Å<<(Å<<(Å^(Å<<(Å<<(Å<<(Å^(Å

이전과 유사합니다. 인수가 1 인 메소드 Å의 단축키입니다 . 그러나이 경우 각 변환은로만 변환되며 1 만 반환 됩니다. 인 (32) , 및 인 (8) ; 이것들은 41 을 얻기 위해 함께 XOR됩니다 .s("s", 1)1<<1<<1<<1<<1<<11<<1<<1<<11


Y±Y¶YY±YY±Y±Y¶YY±YY±Y±Y¶YY±Y

±+=및에 대한 바로 가기 입니다 ===. 이것은 코드가 실제로

Y+=Y===Y,Y+=Y,Y+=Y+=Y===Y,Y+=Y,Y+=Y+=Y===Y,Y+=Y

Y===Y 항상 사실이므로 우리는 이것을 단순화 할 수 있습니다 :

Y+=1,Y+=Y,Y+=Y+=1,Y+=Y,Y+=Y+=1,Y+=Y

0 + 1 = 1 ; 1 + 1 = 2 ; 2 + (2 + 1) = 5 ; 5 + 5 = 10 ; 10 + (10 + 1) = 21 ; 21 + 21 = 42 .


와우, 이것은 지금 커지고 있습니다 :-) 당신은 다시 돌아 가기 Iq위해 8을 사용할 수 8있지만, 19를 위해 다른 것을 찾아야합니다.
ETHproductions

@ETHproductions : 그냥 사용 q을 위해 5저를 사용할 수 있도록 l여분의 수를 추가 할 수 있습니다. 대안을 위해 2노력하고 있습니다 =.
얽히고 설킨

당신이 사용할 수있는 @Shaggy 2에 대한 L>>L더 확보 할 수 있습니다 6. #w s Å확보 할 수 있습니다 ;I
올리버

2, @obarakon에 대한 좋은 트릭; 3을 자유롭게하는 것과 비슷한 것을 사용했습니다. 불행히도 내가 이미 #21
Shaggy

난 당신이 몇 바이트를 저장하고 돌아 가야 (18) (22)를 교환 할 수 있다고 생각 *하고^
ETHproductions

18

PHP, 점수 17, 130 바이트

사용 된 문자 ADEFGIKLMOPRSTVXYZ=_![]()<>'"#$,;/-+*|^&0123456789afhnprstwx

Z==Z
FTP_MOREDATA
';'&w
![]<<![]<<![]
5
6
"#"|"$"|"1"
8
SIGKILL
333333>>3>>3>>3>>3>>3
99/9
22-2-2-2-2-2
strspn(XXXXXXXXXXXXXX,X)
7+7
0xf
4*4
ha^YV

1 불리언 상수 Z (설정되지 않음)

2 FTP_MOREDATA는 값이 2 인 PHP의 상수입니다.

3 비트 및 문자; 그리고 w

4 비트 왼쪽으로 시프트 및 논리 비어 있지 않은 빈 배열을 부울로 캐스트하지 않고 왼쪽으로 시프트 연산자를 통해 정수 1로 캐스트됩니다.

7 비트 또는 문자 # 및 $ 및 1

9 SIGKILL은 값이 9 인 PHP의 상수입니다.

모든 비트마다 10 비트 시프트 Shift는 8의 정수 나누기이므로 단계 333333, 41666, 5208, 651, 81,10이 있습니다.

13 문자열 X에서 문자 X를 세고 ... 처음부터

16 진수 값 f = 15

문자열 ha 및 YV가있는 17 비트 Xor

모든 스 니펫은 배열의 항목입니다

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

PHP, 16, 94 바이트

사용 된 문자 AEIMPRTUZeflnrstvwx^_&|()[]=!.*+/-<>$":0123456789

Z==Z
":"&"w"    
M_PI|[]
TRUE<<TRUE<<TRUE
5
6
A^v    
8
9
!$s.strlen($s)    
77/7
3+3+3+3
111>>1>>1>>1    
22-2-2-2-2
0xf
4*4

1 불리언 상수 Z (설정되지 않음)

2 비트 및 문자 : 및 w

3 파이는 0으로 캐스트 된 빈 배열을 통해 정수 값으로 캐스트 됨

7 비트 xor 문자 A와 v

10 개의 변수 $ s가 설정되지 않았습니다! $ s = 변수 길이가 $ s 인 문자열 하나

13111/2 = 55 / 2 = 27 / 2 = 13 정수 나누기

16 진수 값 f = 15

모든 스 니펫은 배열의 항목입니다

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

PHP, 14, 84 바이트

사용 된 문자 $!_^[]()%/+~-=AEILMNPRUZ0123456789delnrstx

Z==Z
2
M_PI^[]
4
5
6
ERA%11
8
9
!$s.strlen($s)
77/7
3+3+3+3
0xd    
-~-~-~-~-~-~-~-~-~-~-~-~-~-~-NULL

1 불리언 상수 Z (설정되지 않음)

3 파이는 0으로 캐스트 된 빈 배열을 통해 정수 값으로 캐스트 됨

7 ERA는 131116 mod 11 = 7의 상수입니다.

10 개의 변수 $ s가 설정되지 않았습니다! $ s = 변수 $ s의 문자열 길이를 가진 하나의 연결이 0입니다.

13 16 진 값 d = 13 14 비트 단위는 아니고 빼기 부호는 NULL을 14로 올립니다.

모든 스 니펫은 배열의 항목입니다

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


17

R, 13 14 점

F^F                       # F==0 in R
q=""=="";q--q             # ""=="" is TRUE, TRUE == 1 (Thanks WheatWizard)
3
4
5
6
7
8
9
1e1                       # scientific notation for 10
22/2
T+T+T+T+T+T+T+T+T+T+T+T   # T == 1
0xD                       
sum(mtcars$vs)            # mtcars is a built-in dataset, summing the $vs column gives 14

user2390246 덕분에 여분의 것을 얻었습니다.

사용 된 문자 :

0123456789acemqrstuvxDFT^=";-/+()$


1
내장 데이터 세트를 사용할 수 있다면 14로 늘릴 수 있습니다. 1 : F^F2 : "n"%in%"n"+"n"%in%"n"; 3-9 : 숫자, 10 : 1e1, 11 : 22/2, 12 : T--T--T--T..., 13 : 0xD, 14 :sum(mtcars$vs)
user2390246

%내장 된 데이터 세트의 사용 및 사용에 대한 생각 왜 그것이 좋지 않은지 알 수 없습니다.
BLT

이름이 지정된 행과 열이있는 데이터 세트가있는 경우 dataset['A','B']이미 사용 된 문자가 겹치지 않도록 줄을 따라 명령을 수행 할 수 있습니다. 유용한 가치를 포함하십시오!). 불행히도, 간략하게 볼 수있는 한, 명명 된 행을 가진 모든 데이터 세트에는 문자 i가 포함되어 있으므로를 사용하는 것과 호환되지 않습니다 %in%.
user2390246 2016

흠. 2의 경우 WheatWizard의 Python 답변의 트릭을 사용할 수 있습니다 q=""=="";q+q. 즉, 문자의 사용을 확보 것 i하고 n. 지금 살펴볼 시간이 없지만 어딘가에 여분의 것이있을 것입니다.
user2390246

내 생각 엔 당신이 맞다. 가장 큰 문제는 i, n, s, u, m, t, c, a, r, e, x 또는 v를 사용하지 않는 데이터 세트를 찾는 것 같습니다. 문자를 다시 가져 오는 것이 도움이됩니다.
BLT

16

MATL , 점수 21 22 23 개 숫자 (273 바이트)

22에서 23까지의 숫자를 확장 한 J Doe 에게 감사 합니다!

0~
'bd'd
{P}gk
HH^
5
6
7
8
9
3 3.333333333333333*
11
IEE
[B]Yq
llllllllllllllNwxwxwxwxwxwxwxwxwxwxwxwxwxwx
KUKUa-
4W
FFFFFFFFFFFFFFFFFn
TTTTTTTTTTTTTTTTTTs
rrrrrrrrrrrrrrrrrrrhhhhhhhhhhhhhhhhhhz
OOOOOOOOOOOOOOOOOOOOvZyX>
JJJJJJJJJJJJJJJJJJJJJ++++++++++++++++++++J/
22
`@QQQQQQQQQQQQQQQQQQQQQQ@@<

온라인으로 사용해보십시오! 링크의 각 스 니펫은 스택을 지우고 다음 스 니펫과 분리하기 위해D(표시) 또는]D(명확하게 루프를 닫고표시)로끝납니다.

설명

0~

을 누릅니다 0. 부정하다. 부여 true로 표시되는, 1.

'bd'd

문자열을 누릅니다 'bd'. 문자 코드 포인트의 연속적인 차이

{P}gk

숫자가 포함 된 셀형 배열을 푸시합니다 pi. 숫자 형 배열 (즉, 단일 숫자)로 변환합니다. 반올림하십시오.

HH^

2두 번 누르십시오 . 힘.

5

숫자 리터럴.

6

숫자 리터럴.

7

숫자 리터럴.

8

숫자 리터럴.

9

숫자 리터럴.

3 3.333333333333333*

을 누릅니다 3. 을 누릅니다 3.333333333333333. 곱하다. 부동 소수점 정확도로 인해이 기능이 제공 10됩니다.

11

숫자 리터럴.

IEE

을 누릅니다 3. 2두 번 곱하십시오 .

[B]Yq

[6](와 동일 6)을 누릅니다 . n 번째 소수를 계산합니다 .

llllllllllllllNwxwxwxwxwxwxwxwxwxwxwxwxwxwx

114 번 밉니다 . 스택의 요소 수 스택의 나머지 부분을 치 웁니다.

KUKUa-

을 누릅니다 4. 광장. 똑같이하십시오. 모두 : 제공합니다 1. 덜다.

4W

을 누릅니다 4. 2그것에 제기.

FFFFFFFFFFFFFFFFFn

배열을 누릅니다 [false false ... false](17 회). 배열의 요소 수

TTTTTTTTTTTTTTTTTTs

배열을 누릅니다 [true true ... true](18 회). 배열의 합.

rrrrrrrrrrrrrrrrrrrhhhhhhhhhhhhhhhhhhz

구간 (0,1)에서 가져온 19 개의 난수를 누릅니다. 가로로 18 번 연결합니다. 배열에서 0이 아닌 요소의 수

OOOOOOOOOOOOOOOOOOOOvZyX>

020 번 밉니다 . 스택 내용을 세로로 연결합니다 (열 벡터 제공). 크기 : 배열을 제공합니다 [20 1]. 최대 배열

JJJJJJJJJJJJJJJJJJJJJ++++++++++++++++++++J/

1j(가상 단위)를 21 번 누릅니다 . 20 번 추가하십시오. 로 나눕니다 1j.

22

숫자 리터럴

`@QQQQQQQQQQQQQQQQQQQQQQ@@<

`암시 적 종료로 루프 ( )를 수행합니다. 첫 번째 반복에서는 반복 색인 ( @)을 푸시하고 Q22 번 증가시켜 ( ) 산출 23합니다. 루프 조건 ( @@<)이 false이므로 루프가 종료됩니다.

추가 개선을위한 몇 가지 아이디어

  • 스 니펫 10의 (공백)은 |
  • X>스 니펫 (20) p에서을 대체하여 프리픽스를 해제 할 수 있습니다 X.
  • 현재 사용되지 않고 잠재적으로 유용합니다 : :,A

바이트 수를 포함시켜 주시겠습니까?
Okx

@Okx 포함
Luis Mendo

15

Windows의 Vim 8, 점수 13, 104 바이트

1
2
3
4
5
6
7
^R=&ts^@
9
8^O^A^O^A
0^[^X^X^X^X^X^X^X^X^X^X^X0x
:h<CR>wwwwwwwwwwwy$:q<CR>p
grgKjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjYZZvPWWWllld|llD

^{keystroke}나타내고 <C-{keystroke}>있으므로, ^XIS <C-x>제외 들어 ^@있는 <C-j>. 여전히이 목록에 숫자를 더 추가하려고 <CR>하며 줄 바꿈을 나타냅니다.

참고 :이 명령을 실행하려면를 사용하여 vim을 시작하십시오 -u NONE -U NONE. 이는 구성이 코드를 방해하지 않도록하기위한 것입니다.

스 니펫 1 ~ 10은 삽입 모드에서 시작합니다. 스 니펫 12와 13은 일반 모드에서 시작합니다.

설명

스 니펫 8은 :^R=&ts^@입니다. 나는 제안이와 @ nmjcman101와 주셔서 L3viathan @ 감사 할 ^@줄 바꿈 및 단축 ØrjanJohansen @ 대체 &tabstop&ts. &ts그런 다음 탭 크기 (기본적으로 8)로 평가되며이 값이 편집기에 삽입됩니다.

스 니펫 10은 8^O^A^O^A입니다. 우리는 8을 삽입하고 10을 얻기 위해 두 번 증가시킵니다.

스 니펫 11은 0^[^X^X^X^X^X^X^X^X^X^X^X0x입니다. 우리는 0을 기록하고 -11을 얻기 위해 11 번 감소시킵니다. 그런 다음 빼기를 제거하여 11을 얻습니다.

스 니펫 12는 :h<CR>wwwwwwwwwwwy$:q<CR>p입니다. Vim 8의 도움말 메뉴가 열리고 다음 정보가 포함됩니다.

*help.txt*  For Vim version 8.0.  Last change: 2016 Sep 12

그리고 ws 의 순서 는 12로 이동하며, y$이때 숫자가 복사됩니다. 그런 다음를 사용하여 편집기에 붙여 넣습니다 p.

Snippet 13은 grgKjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjYZZvPWWWllld|llD@DJMcMayhem에게 감사의 말을 전합니다. 이것은 Windows에서만 작동합니다. 이 스 니펫은 도움말 메뉴에서로 시작하는 명령을 검색합니다 g. 그런 다음 j줄을 사용하여 아래로 이동합니다 .

|g?|        g?      2  Rot13 encoding operator

그런 다음 복사하여 버퍼에 붙여 넣습니다. 그 후 13을 제외한 모든 것이 버퍼에서 제거됩니다.


스 니펫이 허용됩니다.
Leaky Nun

시겠습니까 ^R=&tabstop+&tabstop+&tabstop<CR>P당신에게 12 줄, 또는 <CR>이미의 때문에 사용 ^M?
L3via6

1
그래, 내가 말할 <CR>때 의미 ^M했지만, 감사합니다, ^M지금 발췌 문장 8에서 제거하는 것을 살펴볼 것입니다 :)
Cows quack

1
@WheatWizard 제어 키는 키 스트로크 나 바이트로 계산되지 않지만 다른 키와 함께 사용되며 바이트로 계산됩니다. 예를 들어 Ctrl + A는 바이트 0x01를 제공하는 반면 Ctrl + X는 바이트 를 제공합니다 0x18. 그리고 분명히이 두 개는 별도의 바이트입니다. 말이 돼?
암소는

1
@ L3viathan로 vim을 시작할 때 -u NONE -U NONE, &tabstop8로 평가됩니다. 그래서 나는 이것을 약간의 수정과 함께 8 개의 스 니펫으로 바 꾸었습니다. 감사합니다 :)
Cows quack

13

매스 매 티카, 13 점

x~D~x
⌊E⌋
3
⌈Pi⌉
5
6
LucasL@4
8
9
0!+0!+0!+0!+0!+0!+0!+0!+0!+0!
77/7
Tr[{11,1}]
-I*I-I*I-I*I-I*I-I*I-I*I-I*I-I*I-I*I-I*I-I*I-I*I-I*I

여분의 공백 문자를 제거해야합니다. 그렇지 않으면 해당 문자를 재사용 한 것처럼 보입니다.
Ørjan Johansen 2016 년

1
전혀 문제되지 않습니다. 제거하겠습니다.
J42161217

2
"모든 문자는 선택한 언어로 단일 바이트를 사용하여 인코딩해야합니다"- ⌊⌋⌈⌉각 1 바이트로 인코딩하는 인코딩이없는 것이 두렵습니다 .
user202729

우리는 피할 수 ⌊⌋⌈⌉켜서 ⌊E⌋Floor@GoldenRatio, ⌈Pi⌉4, LucasL@47, 그리고 77/722/2. 그것은과 기능을 적용하여 적어도 하나의 단계 더 나아가 아마 가능//
미샤 라브 로프

12

05AB1E , 점수 18, 67 바이트

X     Variable is initialized to 1
Y     Variable is initialized to 2
2>     2 + 1
4
5
6
7
8
9
T     Constant 10
3b     3 in binary
•C     Ascii code of 'C'
11Ì     11 in hex
A'ok     Index of 'o' in the alphabet
žz¨¤x+     Middle character of '256' times 2, plus itself
¾<<<<n     Variable initialized to 0, 4 times -1, squared
‘c‘‘c‘QDJH     'c' equals itself (true = 1), duplicated, converted from hex to dec
тD÷·±D*·     Constant 100, divided by itself, * 2, bitwise not, times itself, * 2
"d"aÐÐÐÐÐÐÐÐÐ)O     "d" is_alpha (true = 1), triplicated 9 times, total sum

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


13
답은 A'ok:)
Okx

여기 세 이상이다 „((Ç;¬= 20.0"(("(2 바이트 문자; 서수 값 둘다 절반) 꼬리를 가지고, ₁.²₁P₃/ï=는 21(기록-2 256 256을 곱하여 95으로 나눈 값, 소수를 제거하여) ₂Ågttγć= 22(26 번째 루카스 용어; 2 배 제곱근; 동일한 요소의 척으로 분할; 머리 추출). 마지막 2 개는 시행 착오였습니다.;)
Kevin Cruijssen

9

탁구 , 점수 127

PingPong에서 모든 문자는 고유 한 숫자 값을 가지므로 최대 127 개의 계산이 사소한 작업입니다. 이 언어는 모든 문자의 가치를 읽고 모든 작업이 수행되는 스택의 맨 위로 밀어서 작동합니다. PingPong은 이론적으로 127을 넘을 수 있지만 텍스트 편집기에서 공백으로 표시되는 문자 블록을 전달해야하므로 솔루션에서 제외됩니다.

1: 1
2: 2
3: 3
4: 4
5: 5
6: 6
7: 7
8: 8
9: 9
10: A
11: B
12: C
13: D
14: E
15: F
16: G
17: H
18: I
19: J
20: K
21: L
22: M
23: N
24: O
25: P
26: Q
27: R
28: S
29: T
30: U
31: V
32: W
33: X
34: Y
35: Z
36: a
37: b
38: c
39: d
40: e
41: f
42: g
43: h
44: i
45: j
46: k
47: l
48: m
49: n
50: o
51: p
52: q
53: r
54: s
55: t
56: u
57: v
58: w
59: x
60: y
61: z
62: ©
63: ®
64: À
65: Á
66: Â
67: Ã
68: Ä
69: Å
70: Æ
71: Ç
72: È
73: É
74: Ê
75: Ë
76: Ì
77: Í
78: Î
79: Ï
80: Ð
81: Ñ
82: Ò
83: Ó
84: Ô
85: Õ
86: Ö
87: ×
88: Ø
89: Ù
90: Ú
91: Û
92: Ü
93: Ý
94: Þ
95: ß
96: à
97: á
98: â
99: ã
100: ä
101: å
102: æ
103: ç
104: è
105: é
106: ê
107: ë
108: ì
109: í
110: î
111: ï
112: ð
113: ñ
114: ò
115: ó
116: ô
117: õ
118: ö
119: ÷
120: ø
121: ù
122: ú
123: û
124: ü
125: ý
126: þ
127: ÿ

5
좋아, 이건 불공평 해 ... : P
MD XF

와우, 그것은이 언어가이 도전에 대해 행해진 것과 같습니다 : D
V. Courtois

또 다른 이상한 언어에 대한 TIL :)
roblogic

8

옥타브, 스코어 14, 74 바이트

지금은 한계에 가깝습니다.

1:  ~0                        % Not 0 == 1
2:  "H"/"$"                   % "H" = 72, "$" = 36. H/$ = 2
3:  3                         % Literal
4:  4                         % Literal
5:  5                         % Literal
6:  6                         % Literal
7:  7                         % Literal
8:  8                         % Literal
9:  9                         % Literal
10: ceil(pi*pi)               % pi*pi = 9.87. ceil(9.87) = 10
11: 11                        % Literal
12: 2+2+2+2+2+2               % Well, not much to say
13: ['','RT'-'!']             % 'RT' = [82,84]. Subtract '!' (33) to get ['',49,51]=13
14: nnz...                    % Number of non-zero elements in the string...
    nnnnnnnnnnnnnn            % on this line. (This is an awesome trick by the way!)

제거했다 strchr이미 갖고 있기 때문에 c수 (10) 난 아직도 가지고에서 j, ^, =, !, 공간과 그것을 할 수 있습니다, 그래서 하나 더 집어 넣은 왼쪽 수평 탭 (ASCII-9).

수평 탭은 공간으로 사용할 수 있습니다, 그래서 트릭이 사용 strchr하고 nnz한 번 더 사용할 수 있습니다. 남은 유일한 소문자는 abdfgjkmoquvwxy입니다. 이 기능으로 만들 수있는 기능이 많지 않습니다. mod작동하지만 문자열 입력을 할 수는 없습니다.

나머지 문자를 사용하여 쉽게 얻을 수 1있지만 다른 것을 얻을 수있는 방법을 모르겠습니다.

모두 테스트하십시오 .

아마도 유용 : fun a과 동일 fun('a'), fun a b과 동일하다 fun('a','b')등등합니다. 여러 곳에서 사용할 수 있습니다.

gt t g    % Equivalent to 't'>'g'. Returns 1. Uses space (available)
or o r    % Equivalent to 'o' | 'r'. Returns 1. 

이것을 사용하면 0사용할 수 있지만 아직 유용하게 만드는 방법을 알 수 없습니다.

e (2.71828...)그리고 j아직 사용되지 않습니다. 그래도 ceil사용하려면 제거해야합니다 e.

대안 (영감) :

1:  ~0             % Not 0 = 1
2:  2              % Numeral
3:  3              % Numeral
4:  fix(i^i^i^i)   % Numeral
5:  5              % Numeral
6:  6              % Numeral
7:  7              % Numeral
8:  8              % Numeral
9:  9              % Numeral 
10: 1+1+1+1+1+1+1+1+1+1   % Well, not much to explain
11: ['','RR'-'!']  % RR are [82,82] in ASCII, subtract 33 (!) to get
                   % [49,49], and concatenate with the empty string to convert [49,49] to 11 
12: nnz nnnnnnnnnnnn   % Number of non-zero elements in the string containing 12 n
13: "4"/4          % "4" = 52. Divide it by 4 to get 13.

7

자바 스크립트 (ES7), 16의 정수, 137 (130) 128 바이트

나는했다 @ETHproductions '대답을 잠시 동안 함께 실행; 너무 많이 변경되어 별도로 게시하고 있습니다. 아이디어를 환영합니다. :)

""**""
-~-~{}
3
C=CSS==CSS;C<<C<<C
5
6
7
8
9
++[[]][+[]]+[+[]]
11
4444444444444444444%44
222>>2>>2
`..............i`.indexOf`i`
0XF
atob('MTY')

남은
$_@#!^&|/?:, ABDEGHIJKLNPQRUVWZcghjklmpqrsuvwyz

또는 1의 스 니펫이 !!/!//!!/!/다음 과 같이 교체 된 경우 :
$_@#^&|*?:", ABDEGHIJKLNPQRUVWZcghjklmpqrsuvwyz


JavaScript (ES7), 16 개의 정수, 127 바이트

1 바이트 더 짧습니다. :피

""**""
-~-~{}
3
4
5
6
7
C=CSS==CSS;C<<C<<C<<C
9
++[[]][+[]]+[+[]]
11
`............i`.indexOf`i`
222>>2>>2
0XE
atob('MTU')
88888888888888888%88

남은 $_@#!/^&|?:,ABDFGHIJKLNPQRVWYZcghjklmpqrsuvwyz


1
-~{}-~{}: P Overall 으로 2에 7 바이트를 절약하십시오 . 그러나 이것들은 꽤 좋습니다. 확실히 내 것보다 짧은 방법은 ...
ETHproductions

1
그리고 당신은 여전히 !&/^|일할 수 있는 모든 것을 가지고 있습니다 . 필요하다면, 당신이 사용할 수있는 !!/!//!!/!/무역 1 !/에 대한 "*.
ETH 프로덕션

@ETHproductions 굉장합니다!
darrylyeo 2018 년

1
2는 단지-~-~{}
GOTO 0

+!![]+[+[]]더 잘 사용하지 않는 한 !
GOTO 0

7

Dyalog APL, 점수 15, 89 바이트

≡''
≢###
3
4
⍴⍬⍬⍬⍬⍬
6
⌈○2
8
9
1E1
⎕D⍳⊂⎕D











l:l
7--7-×7
(~0 0 0 0 0 0 0 0 0 0 0 0 0 0)⊥~0
5+5+5

이전 줄 바꿈 l:l은 12의 일부입니다.

14의 공백은 탭을 나타냅니다.


1
12와 14 모두에서 공간을 사용하고 있다고 생각합니다. APL은 대신 탭을 사용할 수 있습니까?
Ørjan Johansen 2016

@ ØrjanJohansen 추가 공간이 없지만 코드 조각을 구분하는 줄을 실수로 포함했습니다.
Uriel

나는 공백 문자는 두 개의 항목, 12 및 14에 사용되는 것 같다 의미
Ørjan 요한센

@ ØrjanJohansen 아, 네, 마지막은 탭과 함께 갈 것입니다.
Uriel

@Uriel 몇 가지 아이디어 : 0 0 0-> 0,0,0; ]fromhex f
ngn

7

> <> , 점수 20, 93 90 74 65 바이트

(Teal Pelican에 의해 3 바이트 절약, Jo King에 의해 많은 바이트 절약!)

iii((
2
3
ll{lll{[
5
6
7
8
!   00=0g
a
b
c
d
e
f
44*
'RA'%
999-9--
"&F#",,
1::+:++:+:+

물고기 놀이터에서 사용해보십시오!스 니펫 n;이 각각의 끝에 추가 하여 결과를 인쇄하도록 할 수 있습니다 . 9 번째 스 니펫에는 스택 교환에서 사용되는 탭이 포함되어 있습니다.

설명:

  • 년은 iii((, 각각 i의 입력을 얻기 위해 시도하지만이 아닌 모든 때문에, 그들은 EOF = 밀어 -1대신. 이어서 (보다 작음 지시이며 이후 -1이상인 -1, 그것은 falsey 푸시 0; 그러나 두 번째 는보다 작은 지 (묻습니다 . 그래서 그것은 진실을 밀어냅니다 .-101
  • 2그리고 3분명하다.
  • 의 경우 ll{lll{[첫 번째 l는 스택의 길이를 푸시 0한 다음 두 번째는 새 길이를 푸시하여 스택을로 가져옵니다 0, 1. {회전은 스택 스와핑 왼쪽 10. 세 개 더 l스택을 가져옵니다 1, 0, 2, 3, 4. 그런 다음 을 앞쪽으로 {돌리고1[ 제 오프 사이펀 1인 스택에 물건 4.
  • 5, 6,7 과는 8너무 명백하다.
  • 에서 !\t00=0g( \t탭을 나타냅니다)에서 탭을 !건너 뛰고 00=두 개의 0 을 밀어 넣고 같은지 확인합니다 1. 서로를 누른 후 0는이 g위치의 문자를 가져옵니다1,0 문자 코드를 사용하여 탭입니다 코드의를 9.
  • af각 푸시를 통해1015각각 (아마도 진수 좋은 만들려면).
  • 44* 두개를 밀다 4 s를 하고 함께 곱합니다 16.
  • 'RA'RA(82 및 65) 의 문자 코드를 스택으로 푸시 한 다음% 다음를 계산합니다 82 mod 65 = 17.
  • 999-9-- ~에 평가하다 9 - ((9 - 9) - 9) = 18 .
  • "&F#"의 문자 코드를 푸시 &, F#되어있는 38, 70그리고 35각각. 그런 다음 ,나누기이므로 우리는 얻습니다 38 / (70 / 35) = 19.
  • 마지막으로 1::a를 1누르고 두 번 복제하고 +둘 중 하나를 더하여 얻습니다 2. :+를 복제하고 2가져 오기 위해 자체에 추가합니다 4. +남은 음식 1을 추가 5; 그런 다음 :+:+복제 및 두 번 추가하여 결과가 발생 20합니다.

> <>에서 가능한 최대 점수입니다. 스 니펫에는 빈 스택을 비어 있지 않은 스택으로 바꾸는 명령어가 포함되어야하며이를 수행 할 수있는 18> <> 명령어 (즉 i,, l숫자 0–9a–f)와 문자열 모드 만 있어야 합니다. (다른 모든 명령은 하나의 빈 스택에 아무것도하지 않는다, ><v^/\|_#x!{}r또는 뭔가 오류를 팝업하려고 ?.+-*,%=():~$@[]on&gp.) 입력 문자열 모드 중 하나를 사용 "하거나 ', 그래서 대부분에있다18 + 2 = 20 미리보기 가능.


당신이 나보다 unprintables 더 편안 경우,이, 조 왕 덕분에 53 바이트 수 : 00=, iii((i-, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, 2222***, !Xll$g, 11+::+:+:++, 'Y', "Z"어디 X, YZ코드와 함께 문자로 대체 17, 19그리고 20각각.


1
이것은 훌륭합니다. 저는이 문제를보고 있었고이 근처에서 아무 것도 할 수 없었지만 당신의 것을 연구하고 골프를 조금 할 수있었습니다. 16은 다음과 같이 변경할 수 있습니다. iii ((:: $-: i $-: i $-i- 및 1로 변경; 00 = 두 줄을 몇 바이트 줄임)
Teal pelican

@Tealpelican, 좋은 일 감사합니다!
나무가 아닙니다

1
다음 2> iii((i-16> 2222***17> 을 변경하여 -23 바이트 lll{lllll{{[{n(스케치가 가능하지만 하나의 숫자로 출력하려면 적어도 하나는 적음 l) 18>11+::+:+:++
Jo King

@ JoKing, 와우, 그것은 큰 골프입니다! (저는 17의 스케치가 덜한 버전으로갔습니다. 규칙에 더 부합하는 것 같습니다.)
나무가 아닙니다

1
! ll$g공간이 값 17 (장치 제어 1)을 가진 제어 문자로 대체되는 17 => 어떻습니까?
Jo King

7

MathGolf , 48 51 53 정수, 324 바이트

î
ª∞~
c±b±+
φⁿ_¥-
5
6
7
○¢i♀/
d²
♂
A
B
C
D
E
☻
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
♥
U
V
W
X
Y
Z
♫¼¼¼¼
88888]Σ
41
╔½½½½½½½½½½½
π░3§3
22#22#
τ╥└
♦⌡⌡⌡⌡⌡⌡⌡⌡⌡
!⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠
'0$
ÿ@@@@£9
))))))))))))))))))))))))))))))))))))))))))))))))))
►◄╠•╠
"hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"h 
♣(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((

@maxb40 덕분에 +2 점수 (및 -2 개의 고유 바이트 사용 ) .

각 줄은 분리 된 프로그램입니다.

사용 된 바이트 (92 개의 고유 바이트) : îª∞~c±b+φⁿ_¥-567○¢i♀/d²♂ABCDE☻FGHIJKLMNOPQRST♥UVWXYZ♫¼8]Σ41╔½π░3§2#τ╥└♦⌡!⌠'0$ÿ@£9)►◄╠•╠"h ♣(

설명 및 TIO 링크 :

MathGolf는 수학 골프 과제를 전문으로하는 새로운 골프 언어입니다. 숫자에 대한 많은 단일 바이트 내장 기능이 있기 때문에 이것이 완벽한 과제입니다.

1) î: 1- 인덱싱 된 루프 값을 기본값으로 1로 설정 합니다. 온라인으로 시도하십시오.
2) ª∞~: [1]을 누릅니다. 그것을 두 배로 ([2]); 팝업 목록을 열고 컨텐츠를 스택에 푸시 하십시오. 온라인으로 시도하십시오.
3) c±b±+: 푸시 -2; 그런 다음 절대 값을 팝하고 푸시합니다. 푸시 -1; 그런 다음 절대 값을 팝하고 푸시합니다. 함께 추가 온라인으로 사용해보십시오.
4) φⁿ_¥-: 황금비 (1.618033988749895)를 누릅니다. 그것을 큐브 (4.23606797749979); 스택의 상단을 복제하십시오. 모듈로 2 (0.23606797749979)를 취하고; 서로 빼기 : 온라인으로 시도하십시오.
5,6,7) 숫자 자체 : 온라인으로 시도하십시오.
8) ○¢i♀/: 푸시 2048; 16 진 문자열로 변환 (800); 정수로 캐스트; 푸시 100; 분할:온라인으로 사용해보십시오.
9) : 푸시 -3; 제곱 : 온라인으로 사용해보십시오. 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) 숫자 자체를 위해 내장을 푸시 하십시오 ( ♂ABCDE☻FGHIJKLMNOPQRST♥UVWXYZ) : 온라인으로 시도하십시오.
39) ♫¼¼¼¼: 10000을 누른다; 정수로 4 번 나눈 값 : 온라인으로 시도하십시오.
40) 88888]Σ: 8을 다섯 번 누릅니다. 그것들을 목록으로 감싸십시오. 그 목록을 요약하십시오 : 온라인으로 사용해보십시오.
41) 숫자 자체 : 온라인으로 시도하십시오.
42) ╔½½½½½½½½½½½: 86400을 누릅니다. 정수로 211 나누기 : 온라인으로 사용해보십시오.
43) π░3§3: 푸시 PI (3.141592653589793); 문자열로 캐스트; 세 번째 0 색인 문자 (4)를 팝하고 푸시합니다. 푸시 3; 전체 스택을 암시 적으로 결합하여 출력합니다 . 온라인으로 시도하십시오.
44) 온라인으로 시도하십시오. 48)22#22#: 2를 두 번 누릅니다. 둘의 힘을 취하십시오 (4). 다시 할; 전체 스택을 암시 적으로 결합하여 출력합니다 . 온라인으로 시도하십시오.
45) τ╥└: 2 * PI (6.283185307179586)를 누른다; 아래에서 2의 거듭 제곱을 가장 가깝게 밀어냅니다 (4). 팝핑하지 않고 스택의 상단 + 1을 밉니다 (5). 전체 스택을 암시 적으로 결합하여 출력합니다 . 온라인으로 시도하십시오.
46) ♦⌡⌡⌡⌡⌡⌡⌡⌡⌡: 푸시 64; 2 9 회 감소 : 온라인으로 시도하십시오.
47) !⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠⌠: 감마 (n + 1)를 누릅니다 (기본적으로 1). 2 23 씩 증가 :
'0$: 문자 '0'의 서수 값을 입력 하십시오. 온라인으로 시도하십시오.
49) ÿ@@@@£9: 푸시 문자열 "@@@@"; 팝과 길이 (4); 푸시 9; 전체 스택을 암시 적으로 결합하여 출력합니다 . 온라인으로 시도하십시오.
50) )))))))))))))))))))))))))))))))))))))))))))))))))): 50 회 증가 : 온라인으로 시도하십시오.
51) ►◄╠•╠: 1,000,000을 누릅니다. 10,000,000을 누릅니다. 둘 다 팝하고 서로 정수 나누기 (10); 푸시 512; 둘 다 팝하고 서로 정수 나누기 : 온라인으로 사용해보십시오.
52) "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"h : 푸시 스트링 "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"; (줄을 터뜨리지 않고) 길이를 밀어 넣으십시오. 마지막 항목을 제외하고 스택에서 모든 것을 제거 하십시오. 온라인으로 시도하십시오.
53) ♣(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((: 128을 누른다; 165 회 감소 : 온라인으로 시도하십시오.

나중에 더 추가하려고합니다. 나는 여전히 modulo %및 multiply를 포함하여 유용한 것들이 남아 *있습니다.


나는 이것에 대한 해결책을 연구하고 있었지만 1-9를 최적화하려고 노력했다. 일단 10에 도달하면 38에 도달하는 것은 사소한 일이됩니다. 한 눈에 알아볼 몇 가지 : 88888ΓΣαΣ-> 88888]Σ또는 88888§§§§Σ하나를 사용하는 비용으로 2 개의 명령을 저장합니다. 당신은 또한 같은 것을 할 수있는 "xxxxxx"h 마지막 문자가 TOS를 제외한 모든 것을 지우고 당신이 수를 생성하는 문자열의 길이를 사용할 수있는 비 분리 공백 곳입니다. 아마도 x당신은 Wx다른 방법으로 35를 얻을 수있는 한 53을 제공 하기 때문에 아마도 다른 것을 사용하십시오 .
maxb

또한 방금 -> char/ord처럼 작동하고 더 긴 문자열 (기본 256 정수와 같은 종류)에서 작동 하는 연산자를 추가했습니다 . 문서화가 잘되어 있지는 않지만이 답변을 개선하고 싶다면 MathGolf의 대화방을 다시 만들 수 있습니다. 'A$67
maxb

@maxb 나는 침대에서 아플 때 당신의 의견을 보았지만 이제이 답변을 개선 할 시간이 있습니다. 감사합니다 88888]Σ. 에 대해 몰랐습니다 ]. 에 관해서는 "hhhhh"h , 그것은 작동하지 않는 것 같습니다 . : S
Kevin Cruijssen

1
여기에서 직접 붙여 넣을 수 있는지 모르겠지만 코드는 공백이 아닌 문자 인 NBSP로 끝나야합니다. 이 명령은 스택의 상단을 제외한 모든 것을 지 웁니다. PPCG가 주석에서 문자를 일반 공간으로 변환한다고 확신합니다. 이것을 시도
maxb

배열에 관해서 [는 배열 컨텍스트 를 시작하고 ]끝내고 결과를 배열에 래핑하여 MathGolf에서 반복적으로 정의합니다 . 최상위 레벨이 하위 레벨처럼 작동하게 ]하려면 전체 스택을 배열로 감싸는 것이 좋은 생각 인 것 같습니다.
maxb

6

자바 8, 11 12 13, 39 바이트

Java에는 숫자 (0-9)에 대한 10 개의 기호 만 있고 모든 메소드 호출 및 상수에는 마침표가 필요하므로 11 개 이상의 출력을 얻을 수 있는지 확실하지 않습니다

분명히 작업이 적용될 때 기본적으로 문자가 정수로 캐스트됩니다.

@ OlivierGrégoire의 도움으로 +1

i->-~i
2
3
4
5
6
7
8
9
'P'^'Z'
11
"::::::::::::"::length
0xD

설명 :

i->-~i

입력을받지 않고 1을 리턴 하는 정수 람다 . 매개 변수가 입력을받지 않으면 위의 메타 포스트에 따라 기본값이 사용되며, 정수의 경우 0입니다.

2
3
4
5
6
7
8
9

리터럴 정수

'P'^'Z'

10을 리턴하는 두 문자의 XOR

11

리터럴 정수

":::::::::::"::length

12 자 문자열의 길이를 반환하는 람다 식

0xD

16 진법 13

확인하려는 경우 TIO 링크 .


1
의견은 긴 토론을위한 것이 아닙니다. 이 대화는 채팅 으로 이동 되었습니다 .
Dennis

바이트 수 (-6 자)를 줄이려면 및 로 2쓸 수 있습니다 . 또한 이것은 문자를 해제하고을 사용합니다 . 210'P'^'Z'X+*P
Olivier Grégoire


더 찬란한 답변 은 당신과 동의하지 않습니다.
Olivier Grégoire

또한,이 웹 사이트에서 1 년 동안이 "요구 사항"을 본 것은 이번이 처음이며 그러한 람다를 사용할 때 아무도 내 골프에 동의하지 않았습니다.
Olivier Grégoire 2016 년

6

가이아 , 25, 203 바이트

§‼
..⌉+⌉
₵P~~
4
5
6
∂Ql
8
9
¶c
11
'¡ċ⌋u⌋
--⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻
7:,Σ
Ø!))))))))))))))
øøw<øøw<«øøw<«øøw<«øøw<«
⟩‘
₸ḣ₸K$₸ḣ₸/S₸₸/=$
]]]]]]]]]]]]]]]]]]]n
⇑’e
0(((((((((((((((((((((_
22
“B”“↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺B”B
3₈×
ℍḥḥ

캐릭터 제한이 주어지면 더 이상 nilads를 사용할 수 없으므로이 점수를 완벽한 점수로 생각합니다.

설명

1. §‼

§공백 문자이며 부울로 강제 변환되므로 결과는 1입니다.

2. ..⌉+⌉

.에 대한 바로 가기 0.5입니다 ceil(0.5+ceil(0.5)).

삼. ₵P~~

₵P pi입니다. ~ 비트 부정입니다. 이중 비트 부정은 단순히 잘림입니다.

4. 4

5. 5

6. 6

7. ∂Ql

∂Q요일의 이름을 포함하는 목록 l이며 길이입니다.

8. 8

9. 9

10. ¶c

c줄 바꿈 코드 포인트 .

11. 11

12. '¡ċ⌋u⌋

'¡  The string "¡"
ċ   Turn it into a list of code points: [161]
⌋   Minimum: 161
u⌋  Floored square root: 12

13. --⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻-⁻

-에 대한 속기 -1, 뺄셈이다. 그래서 이것은 -1 - -1 - -1...13을 만들기에 충분한 시간입니다.

14. 7:,Σ

을 누르고 7복제 하고 두 7을 목록에 :,으로 묶고 합산 Σ합니다.

15. Ø!))))))))))))))

Ø빈 문자열이므로 Ø!1도 증가 )합니다.

16. øøw<øøw<«øøw<«øøw<«øøw<«

øø    Push two empty lists
w     Wrap one of them
<     [] < [[]]? (it is, so push 1)
øøw<  Do the same thing again to push another 1
«     Bitshift 1 left by 1
      Do that same thing again 3 more times to get 16

17. ⟩‘

문자열을 닫으면 기본 250 숫자 리터럴이됩니다. Gaia의 코드 페이지에서 바이트 값 17에 있습니다.

18. ₸ḣ₸K$₸ḣ₸/S₸₸/=$

₸     10
ḣ     doubled
₸     10
K     20 choose 10 (184756)
$     Digit list
₸ḣ₸/  20/10 (2)
S     Split the digit list at index 2 ([[1 8][4 7 5 6]])
₸₸/   10/10 (1)
=     Get the first element of that split ([1 8])
$     Join together and print 18

19. ]]]]]]]]]]]]]]]]]]]n

각각 ]스택을 목록으로 감 쌉니다. 이것을 19 번하고 n목록 의 깊이 를 얻으십시오 .

20. ⇑’e

문자열을 닫으면 코드 페이지 코드 포인트 목록이됩니다. e스택에 목록을 덤프합니다.코드 페이지에서 코드 포인트는 20입니다.

21. 0(((((((((((((((((((((_

감소 (0 21 번, 다음 부정 _.

22. 22

23. “B”“↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺B”B

문자열 “B”을 base-24에서 변환하십시오 . 여기서 0-23의 숫자는 ↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺↺B입니다. 결과는 23입니다.

24. 3₈×

3 × 8.

25. ℍḥḥ

100이 반으로 줄었고 다시 반으로 줄였습니다.


5

C, 13 점

이것들은 단지 정수 상수의 무리입니다.

0==0
__LINE__
3
4
5
6
7
8
9
1+1+1+1+1+1+1+1+1+1
'o'/'.' 
2*2*2*2-2-2
strlen("strlenstrlens")
  1. 0==01로 평가
  2. 코드가 2 행에 있다고 가정합니다. __LINE__= 2
  3. 정수 상수
  4. 정수 상수
  5. 정수 상수
  6. 정수 상수
  7. 정수 상수
  8. 정수 상수
  9. 정수 상수
  10. 1+1+1...= 1*10= 10
  11. 'o'111 '.'은 인쇄 할 수없는 ASCII 0x10을 나타냅니다. 111/10 = 11
  12. (2<<2)= 8, 8*2= 16, 16-2-2= 12
  13. 문자열 길이 "strlenstrlens"= 13

5

, 점수 21 22, 160 총 바이트

╓S@Ri
ΓΓ-Γ-Γ-
αê⌠
¡¡¡¡¼
5
▀lll▀l
ÑÑÑÑÑÑÑÿWÿk
ü`½½
9
..≥°
$$J
3dd
7ƒ
2≡≡≡Σ
║F
4º
0ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~
6DD++
8π
τ╛hτ*
"≤"≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤A
1111 11v11%L1111 11v11%L

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

설명

1. ╓S@Ri

현재 날짜 / 시간의 초를 누릅니다 ( ╓S). 1에서 초 ( @) 사이의 포괄적 인 범위를 R가져 와서 반전 시키고 ( i), 마지막 요소 ( )를 가져 오십시오 . 항상 1입니다.

2. ΓΓ-Γ-Γ-

Γ -1이므로 (-1)-(-1)-(-1)-(-1)이며 2입니다.

삼. αê⌠

αê오일러의 숫자 (2.71828 ...) 는 천장입니다. 3 결과입니다.

4. ¡¡¡¡¼

¡카운터를 증가시키고 카운터를 ¼밉니다.

5. 5

그냥 리터럴.

6. ▀lll▀l

▀lll▀압축 문자열 리터럴은에 해당합니다 "of >ic". l길이를 가지므로 결과는 6입니다.

7. ÑÑÑÑÑÑÑÿWÿk

먼저 7 개의 줄 바꿈 문자 ( Ñ)를 누른 다음 빈 문자열 ( ÿ) 을 누릅니다 . 스택이 배열 ( W) 로 래핑 된 다음 해당 배열에서 빈 문자열의 인덱스가 발견됩니다.

8. ü`½½

ü공백 문자입니다. `ASCII 값 (32)을 누른 다음 두 번 반으로 줄어 듭니다 ( ½½).

9. 9

그냥 리터럴.

10. ..≥°

..리터럴 .문자입니다. 증가 ( )가되어 문자열을 숫자로 구문 분석하고 유효한 숫자가 아니므로 기본값은 0으로 설정하고 1로 증가시킵니다. 그런 다음 10 1 ( °)을 계산 합니다.

11. $$J

$ 레지스터의 현재 값 (처음 1)을 푸시합니다. 따라서 1을 두 번 누르고 스택을 결합하여 인쇄하십시오.

12. 3dd

3을 누르고 두 번 두 번.

13.

일곱 번째 피보나치 수를 푸시합니다.

14. 2≡≡≡Σ

2를 밀고 3 번 세 번 쌓아 스택에 7 2를 남겨 둡니다. 그런 다음 스택 합계 ( Σ)를 가져옵니다 .

15. ║F

기본 -220 숫자 리터럴의 구분 기호입니다. 이 줄의 끝에 있기 때문에 종료 할 필요가 없습니다.

16.

계산 2 4 .

17. 0ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~ò~

ò비트 부정이고, ~산술 부정입니다. 이러한 연산자를 결합하여 0을 17 배 늘릴 수 있습니다.

18. 6DD++

6을 누르고 두 번 복제 한 후 6 + 6 + 6을 계산합니다.

19.

8 번째 소수를 누릅니다.

20. τ╛hτ*

10 ( τ)을 누르고 h소수 ( )의 첫 번째 요소 ( )를 10으로 곱합니다.

21. "≤"≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤≤A

이전 스 니펫과 마찬가지로 문자열 "≤"은 0으로 구문 분석됩니다. 21 번 감소한 다음 절대 값을 사용합니다.

22. 1111 11v11%L1111 11v11%L

여기에서 2 인 1111 div 11 mod 11을 계산 한 다음 2를 인쇄합니다. 그런 다음 다시 수행하십시오.


5

PowerShell, 점수 12, 91 바이트 14, 176 바이트

[byte]!![byte]                    # type gets cast to bool false, inverted, to int = 1
-   -$?-shl$?                   # -bool true is -1, shift left, negative. (Tab not space)
3
4
5
6
7
8
9
1+1+1+1+1+1+1+1+1+1
22/2                                           # use the 2
'uuuuuuuuuuuu'.LENGTH                          # string length
0xd
@{z=@{};Y=@{};YY=@{};w=@{};v=@{};U=@{};zz=@{};S=@{};r=@{};q=@{};p=@{};J=@{};K=@{};m=@{}}|% COU*             # count items in hashtable (space)

편집하다:

  • 옵션으로 1 + 1 + 1 + 1 ..를 해제하기 위해 13의 16 진 리터럴 0xd와 5의 재정렬을 제안한 Ørjan Johansen에게 감사드립니다.
  • 배열 길이를 문자열 길이로, [int]에서 [byte]로, 해시 테이블을 값으로 사용하도록 해시 테이블을 변경하여 (),""Pondering 15를 "ZZZZZZZZZZZZZZZA".InDeXof("A")점이나 'e' 와 같은 것으로 재사용 할 수있게했습니다.

PowerShell은 $없이 변수를 수행 할 수 없으며 기본 기호를 사용하여 지수화, 비트 이동, Pi, ceil () 등을 수행 할 수 없으며 대부분 보어에서 문자열로 또는 문자열로 숫자에서 /로 문자열을 수행합니다. 낮은 구문 번호 생성에 대한 범위는 상대적으로 적습니다.


0아직 사용 하지 않았으므로 13이 될 수 있습니다 0xd. s 를 결합 5하기 +위해 여유 공간을 확보 할 수 있습니다 1. 문자를 저장해야 할 경우 해시 테이블 키는 두 개 이상의 문자가 될 수 있습니다. 1을 얻는 여분의 방법이 있다면 10= 할 수 있습니다 1e1.
Ørjan Johansen 2016 년

@ ØrjanJohansen-좋은 아이디어, 감사, 그들과 함께 내 대답을 편집
TessellatingHeckler

나는 2 : 다른 방법을 찾았습니다 ""-(""-(""-lt(""-""))-(""-lt(""-""))). 그것은 $?요약 을 위해 해방 되며, 당신은 1e1내가 제안한 것을 할 수 있습니다 .
Ørjan Johansen 2016 년

음, t두 버전의 1과 의 충돌을 기다리는 (""-eq"")-(""-(""-eq""))것이 좋습니다 q. 해시 테이블에서 쉽게 교체 할 수 있습니다.
Ørjan Johansen

5

TI- 기본 (83 시리즈), 점수 21 22 23 24 25 (1003 바이트)

1:  A=A
2:  int(tan(tan(cos(cos(cos(B
3:  tanh⁻¹(√(√(√(√(√(√(√(√(√(√(C!°√(√(C!°
        √(√(√(√(√(√(C!°√(√(√(√(√(√(C!°√(
        C!°√(√(√(C!°√(C!°√(C!°√(√(√(√(√(
        √(C!°√(C!°√(C!°√(C!°
4:  4
5:  cosh(sinh⁻¹(cosh(sinh⁻¹(...sinh⁻¹(cosh(D    with 25 repetitions of cosh(
6:  6
7:  7
8:  8
9:  9
10: ₁₀^(₁₀^(E
11: 11
12: F nPr F/sin(tan⁻¹(...(sin(tan⁻¹(F nPr F     with 143 repetitions of sin(tan⁻¹(
13: det([[G≤G]...[G≤G]]ᵀ[[G≤G]...[G≤G           with 26 repetitions of G≤G
14: ln(tanh(not(H))...tanh(not(H)))
        ln(tanh(not(H)))^⁻not(H                 with 14+1 repetitions of tanh(not(H))
15: iPart(e^(e^(e^(I
16: sum(dim(identity(sum(dim(identity(sum(
        dim(identity(sum(dim(identity(J≥J
17: K nCr K+K nCr K+...+K nCr K                 with 17 repetitions of K nCr K
18: abs(i-i-...-i                               with 20 repetitions of i
19: rand→L:log(LL...LL→M:log(L→N:N⁻¹M           with 19 L's inside the log
20: mean(seq(OOO,O,O,sinh(sinh(cos⁻¹(O
21: ππ³√(π³√(ππ³√(ππ³√(ππ³√(π³√(³√(ππ³√(π³
        √(π³√(ππ³√(π³√(ππ³√(ππ³√(ππ³√(π³√(
        π³√(³√(ππ³√(ππ
22: 22
23: 3(3(3×√(3(3(3×√(3(3×√(3(3(3×√(3×√(3×√(
        3(3×√(3(3×√(3(3(3×√(3(3×√(3×√(3(3(
        3×√(3(3×√(3×√(3×√(3(3(3×√(3(3×√(3(
        3(3×√(3×√(3(3(3×√3
24: Fix 0
    sin⁻¹(ᴇ0
    AnsAnsAnsAnsAnsAnsAns
25: 5*5

http://tibasicdev.wikidot.com/one-byte-tokens를 참조하십시오도전 과제가 허용하지 않는 것들에 대한 목록은 를 하십시오.

프로그램의 마지막 줄이 자동으로 인쇄되므로이 모든 것이 완전한 프로그램이 될 수 있습니다. 그러나 (여러 줄 길이 인 17을 제외하고) 홈 화면의 스니 펫일 수도 있습니다.

이 시점에서 다른 방법을 찾지 못했습니다 가능한 나머지 토큰 중 0이 아닌 값을. 개선이 필요한 경우 먼저 위의 솔루션 중 일부를보다 보수적으로 만들어야합니다.

설명

  • A=A변수 A가 자신과 같기 때문에 부울 1 입니다.
  • B기본적으로 0 tan(tan(cos(cos(cos(B이고 약 2.21이며 바닥을 차지합니다.
  • C!°라디안으로 약 1도, 약 0.017입니다. 이것의 긍정적 인 힘은 tanh (2), 약 0.964입니다. 묵시적 곱셈과를 사용하여이 힘을 이진수로 인코딩 √(한 다음tanh⁻¹( 합니다.
  • 4는 간단하다
  • cosh(sinh⁻¹(X 단순화1+엑스2
  • 6-9는 간단합니다
  • ₁₀^( 10의 거듭 제곱을위한 1 바이트 내장 및 10 ^ 10 ^ 0 = 10 ^ 1 = 10입니다.
  • 11은 11입니다.
  • F nPr Fsin(tan⁻¹(X11+1/엑스2
  • G≤G1이므로 [[G≤G]...[G≤G]]13x1 열 벡터입니다. 조옮김의 곱을 스스로 가져 와서 행렬 [[13]]을 얻습니다. 결정자는 13입니다.
  • not(H)1 tanh(not(H))은 0 또는 1과 같지 않은 ln(XXX....X)ln(X)^⁻1숫자이며 X, X0이 아니고 (로그가 존재하므로) 1이 아닌 경우 (분할하지 않도록) 첫 번째 로그에서의 수로 단순화합니다. 0으로).
  • e^(e^(e^(F 약 15.15로 평가되고 바닥을 차지합니다.
  • J≥J1입니다. identity(1x1 항등 행렬을 구성 dim(하고 행 및 열 차원 sum(을 찾아 2를 얻기 위해 추가합니다. 그런 다음 2x2 행렬의 차원을 추가하여 4를 얻고 다시 4x4 행렬의 차원을 추가합니다. 8을 얻고 다시 8x8 행렬의 크기를 추가하여 16을 얻습니다.
  • K nCr K 이항 계수 0은 0을 선택하거나 1입니다. 17 1을 더하면 17이됩니다.
  • i-i-...-i⁻18i로 단순화하고 복용 abs(하면 18이됩니다.
  • rand→LL에 임의의 실수를 저장하지만 그것이 무엇인지는 상관하지 않습니다. 컴퓨팅은 log(L)⁻¹log(L^19)19로 단순화됩니다.
  • sinh(sinh(cos⁻¹(I는 4를 약간 넘으므로 산술 평균이 20 인 seq(III,I,I,sinh(sinh(cos⁻¹(I목록을 제공합니다 {0 1 8 27 64}.
  • 3을 얻는 데 사용 된 속임수의 또 다른 예입니다. 여기서, 약간의 힘은 π21 을 주어야합니다. 묵시적 곱셈을 사용하여 삼항식으로 그 힘을 인코딩합니다 ³√(.
  • 22는 22입니다.
  • 3과 21을 얻는 데 사용되는 트릭의 또 다른 예입니다. 우리는 3의 23을 3의 거듭 제곱을 3×√(입방체 루트로 사용하고 (곱셈으로 인코딩합니다 .
  • Fix 0소수점 이하 0 자리를 표시하고 모든 값을 정수로 반올림하는 설정입니다. sin⁻¹(ᴇ0π / 2로 평가되고 π / 2에 7을 곱하면 약 23.59가되며 24로 반올림됩니다.
  • 5*5( 55를 얻기 위해 사용 하고 25를 위해 사용 된 솔루션을 조정하는 것이 더 보수적 입니다. 그러나이 방법은 많은 공간을 절약하며 *내재 된 곱셈이 존재하기 때문에 매우 유용한 특성이 아닙니다.)

Xmax는 기본적으로 10이며 Ymax = 10, Ymin = Xmin = -10 및 일부 다른 기본값과 동일합니다.
lirtosiast 1

@lirtosiast 이들 모두는 2 바이트입니다.
Misha Lavrov 1

규칙의 해석에 대해 잘 모르겠지만 바이트를 반복하지 않고도 규칙 중 하나를 계속 사용할 수 있다고 생각합니다 (토큰 대신 문자를 바이트로 간주)
lirtosiast

나는 그 해석에 대해 모호하게 회의적이다. 어쨌든 문자를 바이트로 계산하면 Xmax가 °와 충돌하기 때문에 Xfact = 4와 같아야합니다. 우리는 아마 그 중 하나를 2 바이트 명령에서, 다른 점을 TI-84 전용 명령에서 얻을 수있을 것입니다.
Misha Lavrov 1

4

SOGL , 점수 16 18 20, 109 바이트, 47 자 사용

=                    push ""=""
ρ:¾/U                ceil(isPalindrome("")/(isPalindrome("")*(3/4))) -> ceil(1/(3/4)) -> ceil(4/3)
3                    push 3
MM¼÷                 100/(100*1/4)
æ⁄                   length of "aeiou"
6                    push 6
7                    push 7
Nτ                   log2(256)
9                    push 9
L                    push 10
⁹’                   byte with the 11th SOGL code point
Ιζrkk"⁸              `⁸`s UTF-8 codepoint to string, take off 1st 2 chars
'⁰                   messy compression
īuHHHHHHHHHHHHHH±    floor(0.1) `-1` 14 times, then change sign
aIIIIIIIIIIIIIII     A `+1` 15 times, A = 0
4²                   4^2
lllllllllllllllll”l  length of "lllllllllllllllll"
222222222++++++++    2+2+2+2+2+2+2+2+2
δ“○“-                429-420
Μ℮‘                  compressed string of "2ŗ" where ŗ defaults to 0

4

Brachylog , 16 정수, 86 바이트

1
2
3
4
5
6
7
8
9
ℕ<<<<<<<<<<
≜+₁₁
Ịbkkkkkkkị
Ḥl
ℤ₇×₂ṅ
"____**"pᶜ¹
⟦h>>>>>>>>>>>>>>>>ȧ

온라인으로 사용해보십시오! (입력은 1에서 N까지 실행되는 프로그램을 제어합니다)

설명

                       The output is...

1                      1
2                      2
3                      3
4                      4
5                      5
6                      6
7                      7
8                      8
9                      9
ℕ<<<<<<<<<<            Strictly bigger than ... strictly bigger than 0
≜+₁₁                   0 + 11
Ịbkkkkkkkị             "12" converted to an integer
Ḥl                     The length of "Hello, World!"
ℤ₇×₂ṅ                  -(-7 × 2)
"____**"pᶜ¹            The number of unique permutations of "____**"
⟦h>>>>>>>>>>>>>>>>ȧ    The absolute value of stricly less than ... stricly less than 0

1
마지막에는 항상 점이 필요하기 때문에 Prolog : 1에 대해서만 생각하십시오.
false

4

젤리 , 22, 177 바이트

1: Ṇ  : logical NOT. When there is no input, 0 is assumed, so this returns NOT(0)=1
2: ~A~A  : ~ is bitwise NOT and A is absolute value, implicit 0 input
         : 0~ = -1;   0~A = 1;   0~A~ = -2;  0~A~A = 2.
3: 3  : literal 3
4: -ı-²²×-Ḟ:
   -ı-     : literal complex number -1-1j
   ²²×-    : square (2j), then square(-4), then multiply by (×) negative 1 (-) to get 4+0i
   Ḟ       : get the real component, which is 4
5: 5  : literal 5
6: 6  : literal 6
7: 7  : literal 7
8: 8  : literal 8
9: ØDṪ : tail(Ṫ) of list of digits (ØD) to return 9
10: ⁵  : literal 10
11: 11 : literal 11
12: CNCNCNCNCNCNCNCNCNCNCNC : again, 0 is taken as input because there is no input
                            : C is complement and N is negate
                            : so each NC returns 1-(-n)=n+1 and is equivalent to increment, returning 12
13: “>>>>>»L    : encodes "#GlomAbducens" with “>>>>>» then returns the length in characters (13) with L
14: ‘‘‘‘‘‘‘‘‘‘‘‘‘‘   : default input is 0 again, and each ‘ increments it to get 14
15: Ị;Ị;Ị;Ị;Ị;Ị;Ị;Ị;Ị;Ị;Ị;Ị;Ị;Ị;ỊS : default input is 0 again.
                                   : each Ị returns abs(0)<1 = 1
                                   : these are concatenated together with ; then summed with S to get 15
16: ⁴  : builtin literal 16
17: ,,,,,,,,,,,,,,,,,ŒḂŒḊ : Each , is the pair dyad: x,y = [x,y] and x,[y,z] = [x,[y,z]]. 
                          : Thus each , increased the depth by 1, then ŒḊ returns the depth: 17
18: 9Ḥ : 9 doubled = 18
19: E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E : each E returns areallelementsidentical([0]) = 1
                                          : 19 of these are summed with +
20: 44440b44ạ/ : 44440 base 44 = [22,42,0].
               : ạ/ takes the absolute difference of terms: ||22-42|-0| = 20
21: ”TOHH : ”T is the character literal "T". OHH returns its ascii value 84 (O) halved twice (HH) = 21
22: literal 22

한 번에 모두 시도 하거나 한 번에 하나씩 시도 (인수는 원하는 출력입니다).

사용하지 않은 문자 :

¡¢£¤¥¦©¬®µ½¿€ÆÇÐÑÞßæçðȷñ÷øœþ !"#$%&'()*.:<=?@BFGIJKMPQRUVWXYZ[\]^_`acdefghijklmnopqrstuvwxyz{|}¶°¹³⁶⁷⁸⁹⁺⁻⁼⁽⁾ƁƇƊƑƓƘⱮƝƤƬƲȤɓƈɗƒɠɦƙɱɲƥʠɼʂƭʋȥẠḄḌẸḲḶṂỌṚṢṬỤṾẈỴẒȦĊĖḞĠḢİĿṀṄȮṖṘṠẆẊẎŻḅḍẹḥịḳḷṃṇọṛṣṭụṿẉỵẓȧḃċḋėḟġḣŀṁṅȯṗṙṡṫẇẋẏż«’

24A 모두에 사용 하고 있습니까?
Dennis

@Dennis 내 TIO 링크가 정확했지만 설명이 다릅니다. 수정
fireflame241

1
내가 참조. 22¹£€Y기본 링크 를 넣으면 모든 스 니펫을 한 번에 실행할 수 있습니다. tio.run/##y0rNyan8///hzjauOsc6Ry5jLt0jG3UPbTq0icuUy4zLnMuC6/…
Dennis

4

Reng, 점수 40, 149 바이트

여기 사용해보십시오!

1.  e
2.  2
3.  ::l
4.  4
5.  5
6.  i`i`i`i`i`i`+++++
7.  7
8.  8
9.  9
10. A
11. ÇÇÇǹ
12. C
13* [[[[[[[[[[[[[mn~
14. E
15. F
16. G
17. H
18. I
19. J
20. K
21. L
22. M
23. N
24. O
25. P
26. Q
27. R
28. S
29. T
30. U
31. V
32. W
33. X
34. Y
35. Z
36. 6²
37. "%"
38* &fæ¦
39. D3*
40. 11±$1±±±±±±±±$11±$1±±±±$±$

모든 대문자는 숫자이므로 훌륭합니다. 이 중 두 개를 제외하고 모두 스 니펫입니다. 프로그램 인 두 가지 :

13. [[[[[[[[[[[[[mn~
38. &fæ¦

제공된 링크를 통해 실행 중 스택을 볼 수 있습니다. 나중에 설명을하겠습니다.


4

CJam, 27, 168 바이트 점수

1-3 : X , Y,Z

변수는 X, Y, 및 Z는 각각, 1, 2로 초기화하고, (3)된다.

4 : ",,,,",

끈을 밀어 ,,,,길이를 가져갑니다.

5-9 : 5 , 6, 7, 8,9

숫자 리터럴.

10-20 : A-K

사전 초기화 된 변수

21 : U)))))))))))))))))))))

변수 U는로 초기화됩니다 0. U22 번 밀어서 증가시킵니다.

22 : 22

숫자 리터럴.

23 : ';(((((((((';((((((((

문자를 누르면 ;9 번 감소한 2다음 ;다시 누르면 8 배 감소합니다 3.

24 : 4m!

4의 계승을 취하십시오.

25 : TT=TT=+TT=TT=TT=TT=TT=++++

TT=푸시 1합니다. 이 코드는와 동일합니다 1 1+1 1 1 1 1++++.

26 : N:i~W-W-W-W-W-W-W-W-W-W-W-W-W-W-W-W-

N줄 바꿈이 포함 된 문자열을 푸시합니다. :i문자 코드 목록으로 변환하여을 생성 [10]합니다. ~그것을 풀고 10. W-하나를 추가하는 것과 같습니다. 16을 10 번 증가 시키면 26이됩니다.

27 : LLLLLLLLLLLLLLLLLLLLLLLLLLL0]0#

0이 27 번째 인덱스 인 목록에서 0의 인덱스를 찾으십시오.

사용 가능한 문자 : $%&*./1<>?@MOPQRSV[\^_`abcdefghjklmnopqrstuvwxyz{|}

잠재적 인 확장에 대한 몇 가지 참고 사항 :

  • 다른 변수를 사용하려면 10-20을 변경해야 할 수도 있습니다. 1보다 큰 숫자를 얻으면 사용할 수 있습니다 *(비트 연산자는 가능하지만 많은 도움이 될 것이라고는 생각하지 않습니다).

  • 그래도 S나에게 좋은 일이 있습니다.

  • I가 (26)를 변경하는 경우 N{}/iW-W-W-W-W-W-W-W-W-W-W-W-W-W-W-W-, 다음 :사용할 수 있습니다.

  • 빈 목록을 푸시하고 기존 변수로 더 많은 제로를 얻을 수 있습니다. 나는 또한 π를 얻을 수 있지만, 어떻게 든 정수로 캐스트 할 수 없다면 m(for m[) i이미 취해 지지 않으면 유용하지 않습니다 .

  • 배열 조작과 관련하여 다음을 수행 할 수 있습니다.

    • 와지도를 사용 %하거나f
    • 접기를 사용하십시오 *
    • 몇 가지 현명한 작업 수행
    • 기본 전환 (유망한 것으로 보이지만 기본 번호를 어떻게 얻을지 모르겠습니다)
    • 다음을 사용하여 배열을 구성하십시오 |.M1|2|3|

참고로, 나중에 스 니펫을 위해 21 be U)))))))))))))))))))))및 22 22를 무료 1로 만들 수 있습니다 .
비즈니스 고양이

@BusinessCat 감사합니다. 편집했습니다.
Esolanging 과일

pi를 정수로 변환하려면 기본 변환이 :i숫자 목록에 암시 적이라는 사실을 사용할 수 있습니다 (예 : [P]1b제공 3).
Martin Ender 2016 년

당신이 23를 만들기 괜찮다면 많은 이상이 사용할 수있는 ''대신에 ';충분히 사용 후 및 (숫자 (그래서 약 65K 주위에 포장 (각 숫자에 대한). 그것은 ;다른 것을 위해 자유로울 것이지만, 그것이 얼마나 유용한 지 잘 모르겠습니다.
Martin Ender 2016 년

@MartinEnder에 대한 사용을 볼 수는 ;있지만 지금은 할 수 없습니다.
Esolanging 과일

4

Haskell , 13, 86 바이트 점수

pi/pi
sum[sum[]^sum[],sum[]^sum[]]
3
4
5
6
7
8
9
length"eeeeeeeeee"
11
2+2+2+2+2+2
0xD

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

13 점을 유지하면서 내 편지 겹침을 수정하는 방법을 찾은 Ørjan Johansen에게 감사합니다. (이 답변이 삭제 된 동안 나 에게이 사실을 알리기 위해 나갔습니다.)

pi/pi입니다 1.0. , 로 및 로
sum[]평가합니다 . 하는 단지 자신을 디코딩. 문자열의 길이를 산출합니다 . 입니다 . 의 16 진수입니다 .00^01sum[1,1]239
length"eeeeeeeeee"10
2+2+2+2+2+212
0xD13


글자가 겹칩니다.
xnor

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