使用四则运算实现异或

我其实不知道用什么标题

前言

工作需要,场景如下:
是否存在三个数 a, b, c 和一种运算 f (f 的定义域为 {a, b, c}), 使得:

当 x ≠ y, f(x , y) = 0; 当 x = y, f(x , y) = 1

大家第一反应可能是异或,但是在我那个场景需要用到数值优化,需要用到纯粹的四则运算,不然没法微分或积分。经过尝试,偶然间发现可以这样构造

思路

取 a,b,c

a, b, c 是地位是平等的, 抽象来说是“对称的”。两个数字对称,我们很容易想到让这两个数成为相反数,那么三个数对称呢?
在实数域上貌似没有方法,假如我们把实数域扩充为复数域,这时候就很简单了,也即将一个复数域上的圆三等分,可以这么取:
a = 1 ,   b = − 1 2 + 3 2 i ,   c = − 1 2 − 3 2 i a = 1, ~b=-\frac12+\frac{\sqrt{3}}{2}i, ~c=-\frac12-\frac{\sqrt{3}}{2}i a=1, b=21+23 i, c=2123 i

取f

由于该式子的结果是对称的,所以合理推测式子结构也是对称的,最常见的对称元素有:
x 1 + x 2   和   x 1 x 2 x_1 + x_2 ~~和~~ x_1x_2 x1+x2    x1x2
多次尝试最终得到结果

成果

a = 1 ,   b = − 1 2 + 3 2 i ,   c = − 1 2 − 3 2 i f ( x , y ) = x y ( x + y ) + 1 3 a = 1, ~b=-\frac12+\frac{\sqrt{3}}{2}i, ~c=-\frac12-\frac{\sqrt{3}}{2}i\\ f(x, y) = \frac{xy(x + y) + 1}{3} a=1, b=21+23 i, c=2123 if(x,y)=3xy(x+y)+1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值