Re: [閒聊] 什麼時候可以出個最大傷害記錄

作者: yallowsam21 (米漿 Porrige)   2017-11-07 00:22:32
來,讓敝人在下小弟不才我來簡單說明一下
為什麼排行榜的最大傷害不是實際的最大傷害。
大家只要打開排行榜想看看最大傷害
會發現開外掛(?)或是真的超高傷害的那些
(像是這次溢補關卡)
數字都是2147483647,對吧?
另外排行榜裡的最大連擊數也只會是255
這是為什麼呢?
簡單說,就是進制的問題罷了。
各位應該都知道電腦或手機的程式都是使用二進制編碼的
而神魔是採用32bit的計數方式
也就是說,之前在打最大連擊數那個成就
大家應該會發現打出去的傷害
就是只有214748364
(因為最後一位的7被顯示的位數吃掉了)
但是某次大更新後,就正式把遊戲中的數值提升了
(因為怪的血量越來越誇張......)
不過排行榜卻還沒改到
也就造成排行榜的最大傷害還是只有2147483647了
這數字跟二進制和32bit有個很大的關係
因為2147483647=2^31-1
寫成二進制的數字就會是1111111111111111111111111111111(31個1)
簡單解釋的話
32bit就是有32個位元
對於我們常用的十進制來說
每個位數的最大值就是9
到10就會進位
同理,二進制的每個位元最大值就是1
逢2進位
那既然32bit有32個數字
為什麼最大值卻是31個1而已呢?
因為二進制不像我們能在數字前方
加上+或-來表示正負
而是同樣以1或0來表示正負
所以會缺一個位元來表示正負值
至於排行榜中的最大連擊數也是類似的道理
最大值會是255=2^8-1
代表工程師們只給它8位元
因為連擊數不像傷害會有負值
(像是傷害吸收之類的盾)
所以就是寫滿8個1囉
但是為什麼2^x還要再減1?
這就是數學的部份了
因為數字的計數是從0開始
也就是說第一個數是0
第二個數是1,以此類推
才會造成最後需要補個減1
來留給傷害為0或是康波為0的狀態
文組說明:
盤子最多只能放三顆榴槤
你的實際上有五顆榴槤
不過端出來給客人最多只能放三顆
這樣應該簡單多了哈哈
作者: aaa1924a4 (言酥雞)   2017-11-07 00:27:00
快推以免被認為看不懂
作者: alternate (plan B)   2017-11-07 00:30:00
有沒有文組版本的說明
作者: IceLemontea (cmwang)   2017-11-07 00:30:00
為什麼要減1,因為數字從零開始啊…
作者: meredith001 (ああああ ̄▽ ̄)   2017-11-07 00:31:00
沒有最經典的32767 失敗
作者: StevenZ (Arc)   2017-11-07 00:32:00
C8763
作者: bluelamb (藍羊)   2017-11-07 00:33:00
說好的65535呢
作者: suhaw (阿邪)   2017-11-07 00:44:00
32767~-32768
作者: phoenix286 (糰子大家族)   2017-11-07 00:45:00
把位數都拿去存正數 就不用多花一位計正負了吧
作者: blueocean292 (藍海)   2017-11-07 00:47:00
原來是數學之塔啊 我還以為這裡是神魔之塔勒
作者: Forthelife (我認為暱稱一定要全填滿)   2017-11-07 00:48:00
60229
作者: StevenZ (Arc)   2017-11-07 01:02:00
32767~-32768 是天堂的正義值範圍啦~~~ XD
作者: wayan0607 (badman)   2017-11-07 01:16:00
推文組說明
作者: ringal (皓呆)   2017-11-07 01:24:00
天堂經典正義值:32767 邪惡值:-32768 神魔沒有跟天堂致敬!
作者: Ukanomitama (宇迦ノ御魂神)   2017-11-07 01:26:00
先推
作者: jacky1227890 (biggerblackman)   2017-11-07 01:28:00
幹文組說明反而看不懂
作者: qqppzzmm (里予木各火乍弓單)   2017-11-07 01:46:00
有文組版 讚
作者: gino9955 (臨江)   2017-11-07 01:59:00
文組版看的霧煞煞
作者: gygycowbei (積y)   2017-11-07 02:40:00
媽的之前寫加減器被助教刁這個
作者: kerlakerla (喀啦喀啦)   2017-11-07 06:50:00
不懂為什麼少1才看完的 結果沒講
作者: jacky3838 (yo)   2017-11-07 07:27:00
我是理組我驕傲
作者: sorochis (ㄇㄚˇ ㄨㄟˇ ㄎㄨㄥˋ)   2017-11-07 07:39:00
為什麼少1不是有講了嗎?任何數字序列都從0開始啊十進制的三位數上限不是一千,是999,一樣的道理話說這是國小的數學了吧
作者: WenKaiSu (kai)   2017-11-07 07:50:00
第一千個數字是999而不是1000 因為是從零開始數
作者: pcyu16 (._.?)   2017-11-07 08:21:00
文組解釋
作者: pippen2002 ((EJ1547))   2017-11-07 09:13:00
好像看過2147483648 ?
作者: udm   2017-11-07 09:30:00
第一次搞懂給推。
作者: meredith001 (ああああ ̄▽ ̄)   2017-11-07 09:35:00
2147483648就楓幣上限阿
作者: peter0627 (biscuit)   2017-11-07 09:41:00
認真問神魔為什過了這麼久還是用int 不是long long
作者: a0429 (Miller)   2017-11-07 09:43:00
有天堂給推 XD
作者: lulu1016 (露露)   2017-11-07 10:21:00
這理組根本就常識 文組又看不懂 根本一篇廢文
作者: teddybear221 (拉哥)   2017-11-07 11:09:00
原本4計概神 推一個
作者: kerlakerla (喀啦喀啦)   2017-11-07 11:14:00
我問的是2^n-1那個-1是為什麼
作者: phonya (楓夜)   2017-11-07 11:23:00
2^n在二進位制是n+1位數啊 2^1=(2)10=(10)2 =>2位數所以只能顯示n位數的話就要2^n-1 那就是n位數的最大值
作者: phoenix286 (糰子大家族)   2017-11-07 11:50:00
因為有0 所以會2^n-1
作者: noproblem226 (好好照顧自己。)   2017-11-07 12:38:00
文組說明意思感覺不太通
作者: ghostunt893 (別啊)   2017-11-07 12:42:00
我也推60229
作者: vector666 (團結)   2017-11-07 14:06:00
文組也看不懂文組版怎麼辦
作者: c22501656 (SIN)   2017-11-07 15:12:00
60229
作者: gocc (彼之判決)   2017-11-07 15:14:00
60229+1
作者: sorochis (ㄇㄚˇ ㄨㄟˇ ㄎㄨㄥˋ)   2017-11-07 18:45:00
推文完美體現了世界上只有10種人的概念:懂二進位的人跟不懂二進位的人
作者: easypro   2017-11-07 21:37:00
沒改成long的原因應該是sql的關係,改下去sql部分工程就大了,因為有紀錄部分要同步更新
作者: udm   2017-11-07 21:39:00
話說目前的手機大都還是32 bit,跟這個bug無法改掉有關嗎?
作者: kerlakerla (喀啦喀啦)   2017-11-08 00:30:00
懂了 推回來
作者: lkjhgfdsa681 (魚兒水中游)   2017-11-08 02:57:00
推推 很清楚一看就懂~
作者: a196203325 (台中王羲之)   2017-11-08 08:44:00
連文組版本都看了好幾次才懂QAQ
作者: DJY (1080P)   2017-11-08 08:56:00
有沒有智X版?

Links booklink

Contact Us: admin [ a t ] ucptt.com