游戏开发论坛

 找回密码
 立即注册
搜索
楼主: Miu.C

请教一下这个问题

[复制链接]

26

主题

537

帖子

537

积分

高级会员

Rank: 4

积分
537
发表于 2007-6-27 16:38:00 | 显示全部楼层

Re: Re: Re:请教一下这个问题

游戏之家站长: Re: Re:请教一下这个问题



既然他们可以用嘴做游戏,那我为什么不能,
DOOM4是我设计的,你信不信?



就帖论帖,本帖内容跟你们的恩怨有什么关系?!不要没事挑起争端

26

主题

537

帖子

537

积分

高级会员

Rank: 4

积分
537
发表于 2007-6-27 16:43:00 | 显示全部楼层

Re:请教一下这个问题

And和>>移位(这只有.Net才有吧)是一个道理——取模法。好方法。

82

主题

782

帖子

798

积分

高级会员

Rank: 4

积分
798
发表于 2007-6-27 19:20:00 | 显示全部楼层

Re:请教一下这个问题

感觉移位运算的可能性比较大,或许移位方法套用了什么公式?
我得智商只能想到这些了,楼主见谅。

3

主题

322

帖子

334

积分

中级会员

Rank: 3Rank: 3

积分
334
发表于 2007-6-28 09:47:00 | 显示全部楼层

Re:请教一下这个问题

回楼上,就是用二进制的位移和位的逻辑与运算的,就是12楼说的..因为我只知道在C能用.VB6上不能用.所以就.没说清楚.怕VB板块是绝对禁止C的存在.
不过VB.NET就不知道能不能用那2个方法了.
如果可以用C的话.这方法是很有效率的...
如果是VB的话.用4楼的方法,转成VB代码就.完事了

187

主题

6490

帖子

6491

积分

论坛元老

团长

Rank: 8Rank: 8

积分
6491
 楼主| 发表于 2007-6-28 10:28:00 | 显示全部楼层

Re:请教一下这个问题

没有的话用其它的语言辅助一下。

0

主题

160

帖子

160

积分

注册会员

Rank: 2

积分
160
发表于 2007-6-28 12:11:00 | 显示全部楼层

Re:请教一下这个问题


miu老师也在!

187

主题

6490

帖子

6491

积分

论坛元老

团长

Rank: 8Rank: 8

积分
6491
 楼主| 发表于 2007-6-28 17:48:00 | 显示全部楼层

Re: Re:请教一下这个问题

miucpp: Re:请教一下这个问题


miu老师也在!

这马甲.........
[em7]

9

主题

86

帖子

86

积分

注册会员

Rank: 2

积分
86
发表于 2007-6-28 18:37:00 | 显示全部楼层

Re:请教一下这个问题

恩,可能有朋友怀疑这个算法的效率
我们来分析一下把
其他操作没什么说的,耗时的操作是 m=searchInB(W); //在B[N]中查找 使得 2^m<=W<2^(m+1)
这一步吧,在数组B[]查找.
看看B的大小,假设是32位机,也就是说最大整数是0xffffffff<2^32
也就是说B中最大的数可以到2^32(多了就溢出了),这样B中最多有32个元素:1,2,4,8,16,32,...
在B中查找一个数,假设我们就是采用挨个查找,我们也最多比较32次就有结果了,确切的来说平均查找次数为
16次,而且大家可以注意到,每次分解后的数都比原来的数至少小一半,所以下一次再查找的时候,它会落在前部分的空间里,也就是说能很快找到了
所以查找也不是很耗时,如果你想加速这个算法,在查找的时候可以采用2分查找,不过要小心上下界相加可能溢出的情况
//--------
上面朋友说的移位求解是这样的
12是1010(2进制),但是在计算机中是0000 0000 0000 0000 0000 0000 0000  1010(32位)
采用右移,如果第n次中移出的数是1 则有2^n
就这样循环32次,
结果还是 2^3+2^2
这个方法的时间是个常数时间,也就是说肯定会移动32次
//--------
恩,用哪个方法,还是自己斟酌吧~

3

主题

322

帖子

334

积分

中级会员

Rank: 3Rank: 3

积分
334
发表于 2007-6-28 19:53:00 | 显示全部楼层

Re:请教一下这个问题

那我也试下吧.同理

B=1;
DO(
   IF(B & W){
      COUT<<B} ;
   B=<< ;
)WHILE (B<W) ;

/要在程序中还是尽量避免使用 ^,*,/,的.为了效率
不过效率不是理论.我也没得试了.我还是随便说说就算了.毕竟这是VB的.VB不能用我这方法.但可以用你的方法.

16

主题

280

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
QQ
发表于 2007-6-29 15:02:00 | 显示全部楼层

Re: 请教一下这个问题

[em24] [em24] [em24] [em24] [em24]这下完了,后脑撞椅子上了。 [em7] [em7] [em7] [em7] [em7]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 23:20

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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