ised : 72 46 자
이것은 거의 완벽하게 맞습니다 ... 수학 골프를위한 정확한 의미 인 "언어"가 있습니다 : ised . 난독 화 된 구문은 매우 짧은 코드 (명명 된 변수, 정수 메모리 슬롯 및 다양한 단일 문자 연산자)를 만듭니다. 적분을 사용하여 감마 함수를 정의하면 겉보기에 무작위로 보이는 80 개의 문자가 나타납니다
@4{:.1*@+{@3[.,.1,99]^x:*exp-$3}:}@6{:@{$4::@5avg${0,1}>$2}$5:}@0,0@1,99;$6:::.
여기서 메모리 슬롯 $ 4는 계승 함수이며, 메모리 슬롯 $ 6이 분할 기능과 메모리 슬롯 $ 2는 입력으로 설정 될 것으로 예상됩니다 (이 코드를 소싱하기 전에 제공됨). 슬롯 $ 0 및 $ 1은이 분할 경계입니다. 호출 예 (위의 코드가 파일에 있다고 가정 inversefactorial.ised
)
bash> ised '@2{556}' --f inversefactorial.ised
556
5.86118
물론 내장을 사용할 수 있습니다! 연산자 (이 경우 45 자 이하)
@6{:@{{@5avg${0,1}}!>$2}$5:}@0,0@1,99;$6:::.
신중하고 운영자 우월성은 때때로 이상합니다.
편집 : 함수를 저장하는 대신 인라인해야합니다. 72 자로 Mathematica를 이길 수 있습니다!
@0,0@1,99;{:@{{:.1*@+{@3[.,.1,99]^x:*exp-$3}:}::@5avg${0,1}>$2}$5:}:::.
그리고! 내장하면 41이됩니다.
1 년 기한이 지난 업데이트 :
방금 이것이 매우 비효율적이라는 것을 깨달았습니다. 60 자 이하로 줄어듬 :
@0#@1,99;{:@{.1*@3[.,.1,99]^@5avg${0,1}@:exp-$3>$2}$5:}:::.
utf-8을 사용하면 (Mathematica도 사용) 57에 도달합니다.
@0#@1,99;{:@{.1*@3[.,.1,99]^@5avg${0,1}·exp-$3>$2}$5:}∙.
약간 다른 재 작성으로 46으로 줄일 수 있습니다 (내장!를 사용하는 경우 27).
{:x_S{.5@3[.,.1,99]^avgx·exp-$3*.1<$2}:}∙∓99_0
답을 두 번 인쇄해도 괜찮 으면 마지막 두 문자를 제거 할 수 있습니다.