양변 a 와 b가 주어지면 제 3 변에 대해 좋은 다항식 모듈로 7이 있습니다.
3(a3b−ab3)mod7
또는 인수 분해
3ab(a2−b2)mod7
모듈로 7은 {0,1,2,3,4,5,6}의 나머지에 매핑됩니다.
이 Math SE answer 에서 왜 작동하는지 설명 하지만 누락 된 명확한 주장이 있다고 생각합니다. 작동하는 유일한 다른 2 항 다항식은
(3a5b5−a3b)mod7
원래 비트 bash 를 산술 연산 으로 변환 하여 찾은 다음 더 좋은 것을 찾기 위해이 형식의 다항식을 무차별 검색했습니다.
이 포트를 좋아하는 언어로 자유롭게 추가하십시오. 이것은 CW 게시물입니다.
Synthetica의 J, 9
7|3***+*-
내 게시물 보기
Dyalog APL, 9 by ngn (Adám에서 오타 수정)
7|3×××+×-
위의 답변에서 명백히 도난당했습니다.
TI-Basic, 14 팀 Timtech
7fPart((A³B-AB³)/21
Pyth, 16 by FryAmTheEggman
M%*3-*H^G3*^H3G7
g
두 값 의 함수 를 정의합니다 .
Peter Taylor (구 다항식)의 Golfscript, 18
~1$*.5?3*@.*@*- 7%
Martin Büttner (Peter 's GolfScript에서 이식)의 18 세 CJam (구 다항식)
l~1$*_5#3*@_*@*m7%
Mathematica, Martin Büttner의 20
Mod[+##(#-#2)3##,7]&
예, 그것은 단항 플러스이며, 단항 플러스를 사용하지 않는 더 짧은 방법은 없습니다.
dc, 21by Toby Speight
sb7+d3^lb*rlb3^*-3*7%
a
차이가 항상 양수인지 확인하려면 7을 추가 해야합니다 (dc에 서명 된 %
연산자가 있음).
줄리아, 24 23, Martin Büttner
f(a,b)=3a*b*(a^2-b^2)%7
CoffeeScript, 28 26 rink.attendant.6
x=(a,b)->3*a*b*(a*a-b*b)%7
JavaScript (ES6), 28 26 by rink.attendant.6
x=(a,b)=>3*a*b*(a*a-b*b)%7
기본적으로 CoffeeScript와 동일합니다.
xnor의 Python 28
lambda a,b:3*a*b*(a*a-b*b)%7
배쉬, 31
특별한 것은 없습니다 :
echo $[3*($1**3*$2-$1*$2**3)%7]
또는 대안 적으로 :
echo $[3*$1*$2*($1*$1-$2*$2)%7]
더 길지만 흥미있는 또 다른 접근법 .
Nim, 36 by Sillesta
proc(x,y:int):int=3*x*y*(x*x-y*y)%%7
rink.attendant.6에 의한 Java 7, 46 44
int f(int a,int b){return(a*a-b*b)*a*b*3%7;}
Kevin Cruijssen의 Java 8, 25 23
a->b->(a*a-b*b)*a*b*3%7
rink.attendant.6에 의해 PHP, 49 47
function x($a,$b){echo($a*$a-$b*$b)*3*$a*$b%7;}
배치, unclemeat 52
set/aa=(3*(%1*%1*%1*%2-%1*%2*%2*%2)%%7+7)%%7
echo %a%
CMD는 기본적으로 실제 계수를 지원하지 않으므로 음수를 처리 할 수 없습니다 %%7+7)%%7
.
LESS ( 파라 메트릭 믹스 인 ), 62 60 rink.attendant.6
.x(@a,@b){@r:mod(3*@a*@b*(@a*@a-@b*@b),7);content:~"'@{r}'"}
아래 내 게시물을 참조하십시오 .
05AB1E, 10 8 Emigna (케빈 크루이 센이 2 바이트)
nÆs`3P7%
온라인으로 사용해보십시오.
Haskell, 31 27 25, 일반 표시 이름
a#b=3*a*b*(a*a-b*b)`mod`7
온라인으로 사용해보십시오!
Excel, 27 by Wernisch
=MOD(3*(A1^3*B1-A1*B1^3),7)
Taylor Scott의 Excel VBA, 25
?3*[A1^3*B1-A1*B1^3]Mod 7
Reffu에 의해 Forth (gforth) 41
: f 2>r 2r@ * 2r@ + 2r> - 3 * * * 7 mod ;
온라인으로 사용해보십시오!
Kevin Cruijssen의 C #, 23
a=>b=>(a*a-b*b)*a*b*3%7