游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1666|回复: 4

请问各位一个算法问题

[复制链接]

20

主题

118

帖子

118

积分

注册会员

Rank: 2

积分
118
发表于 2006-1-19 08:18:00 | 显示全部楼层 |阅读模式
已知x=233,y=205,设未知数为a,b
并知道x xor a=z
      y xor b=z
能否求出z或者a,b?

26

主题

537

帖子

537

积分

高级会员

Rank: 4

积分
537
发表于 2006-1-19 09:49:00 | 显示全部楼层

Re:请问各位一个算法问题

即使a、b、z都是Byte型,也将会是一系列组值
x=11101001(二进制)
y=11001101
对于每一组 x xor a = z = y xor b,只要保证a和b的第3和第6位不同而其它位相同即可,
所以任何一组满足且仅满足第3和第6位不同的数都可以作为a和b,相应的z则为 x xor a。

是这样吧?

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2006-1-19 10:25:00 | 显示全部楼层

Re:请问各位一个算法问题

无穷解

每一位对于x和y,z都有2种可能,对应的有2组a和b

对于8位,z有256种可能,对应的有256组a和b

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
发表于 2006-1-19 13:50:00 | 显示全部楼层

Re:请问各位一个算法问题

穷举是最容易想到的方式,
虽然可以利用异或的性质加速,在8bit这么少的运算量中根本无法体现出。

以下仅供初学者参考

所谓穷举就是遍历
for(a=0 to 256)
for(b=0 to 256)
  z1=x xor a
  z2=y xor b
  if z1=z2 printf "...输出abz“
next b
next a

0

主题

9

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2006-1-20 09:50:00 | 显示全部楼层

Re:请问各位一个算法问题

http://hack.gameres.com/showthread.asp?threadid=46214
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 06:52

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表