Ada modulo 7 ekspresi polinomial yang bagus untuk sisi ketiga diberikan dua sisi a dan b .
3 ( a3b - a b3)mod7
atau diperhitungkan
3 a b ( a2- b2)mod7
Modulo 7 memetakan sisanya di {0,1,2,3,4,5,6}.
Saya menjelaskan mengapa ini bekerja dalam jawaban Math SE ini , meskipun saya pikir mungkin ada argumen yang lebih bersih yang saya lewatkan. Satu-satunya polinomial dua-istilah lain yang berfungsi adalah
( 3 a5b5- a3b )mod7
yang awalnya saya temukan dengan mengubah bit-bashing saya menjadi operasi aritmatika, kemudian melakukan pencarian dengan kekerasan melalui polinomial dari bentuk ini untuk menemukan yang lebih bagus.
Silakan menambahkan port ini ke dalam bahasa favorit Anda; ini adalah posting CW.
J, 9 oleh Synthetica
7|3***+*-
Lihat posting saya
Dyalog APL, 9 oleh ngn (salah ketik diperbaiki oleh Adám)
7|3×××+×-
Dicuri dari jawaban J terang-terangan.
TI-Basic, 14 oleh Timtech
7fPart((A³B-AB³)/21
Pyth, 16 oleh FryAmTheEggman
M%*3-*H^G3*^H3G7
Menentukan fungsi g
dua nilai.
Golfscript, 18 oleh Peter Taylor (polinomial lama)
~1$*.5?3*@.*@*- 7%
CJam, 18 oleh Martin Büttner (porting dari Peter's GolfScript) (polinomial lama)
l~1$*_5#3*@_*@*m7%
Mathematica, 20 oleh Martin Büttner
Mod[+##(#-#2)3##,7]&
Ya, itu plus unary, dan tidak, tidak ada cara yang lebih pendek yang tidak menggunakan plus unary.
dc, 21 oleh Toby Speight
sb7+d3^lb*rlb3^*-3*7%
Saya harus menambahkan 7 untuk a
memastikan perbedaan selalu positif (dc memiliki %
operator yang ditandatangani ).
Julia, 24 23 oleh Martin Büttner
f(a,b)=3a*b*(a^2-b^2)%7
CoffeeScript, 28 26 oleh rink.attendant.6
x=(a,b)->3*a*b*(a*a-b*b)%7
JavaScript (ES6), 28 26 oleh rink.attendant.6
x=(a,b)=>3*a*b*(a*a-b*b)%7
Intinya sama dengan CoffeeScript.
Python 28, oleh xnor
lambda a,b:3*a*b*(a*a-b*b)%7
Bash, 31
Tidak ada yang spesial:
echo $[3*($1**3*$2-$1*$2**3)%7]
atau sebagai alternatif:
echo $[3*$1*$2*($1*$1-$2*$2)%7]
Pendekatan lain (lebih lama tapi mungkin menarik) .
Nim, 36 oleh Sillesta
proc(x,y:int):int=3*x*y*(x*x-y*y)%%7
Java 7, 46 44 oleh rink.attendant.6
int f(int a,int b){return(a*a-b*b)*a*b*3%7;}
Java 8, 25 23 oleh Kevin Cruijssen
a->b->(a*a-b*b)*a*b*3%7
PHP, 49 47 oleh rink.attendant.6
function x($a,$b){echo($a*$a-$b*$b)*3*$a*$b%7;}
Batch, 52 tidak terdaftar
set/aa=(3*(%1*%1*%1*%2-%1*%2*%2*%2)%%7+7)%%7
echo %a%
CMD tidak mendukung modulus true secara asli (jadi tidak dapat menangani angka negatif) - karenanya %%7+7)%%7
.
KURANG (sebagai campuran parametrik ), 62 60 oleh rink.attendant.6
.x(@a,@b){@r:mod(3*@a*@b*(@a*@a-@b*@b),7);content:~"'@{r}'"}
Lihat posting saya di bawah ini .
05AB1E, 10 8 oleh Emigna (-2 bytes oleh Kevin Cruijssen)
nÆs`3P7%
Cobalah online.
Haskell, 31 27 25 oleh Generic Display Name
a#b=3*a*b*(a*a-b*b)`mod`7
Cobalah online!
Excel, 27 oleh Wernisch
=MOD(3*(A1^3*B1-A1*B1^3),7)
Excel VBA, 25 oleh Taylor Scott
?3*[A1^3*B1-A1*B1^3]Mod 7
Keempat (gforth) 41 oleh reffu
: f 2>r 2r@ * 2r@ + 2r> - 3 * * * 7 mod ;
Cobalah online!
C #, 23 oleh Kevin Cruijssen
a=>b=>(a*a-b*b)*a*b*3%7