表空间1的页面数 * 表空间1的pagesize + 表空间2的页面数 * 表空间2的pagesize + …… + 表空间n的页面数 * 表空间n的pagesize。
至于 乘以 4 是默认认为都是 4k 页的表空间。但实际上可能存在不同pagesize的表空间在同一个数据库中。
over
首先如果我有allcount个,每页为pagesize,且pagesize比1大先说java整数间的/符号,不光是除法还会进行向0取整的工作,
即正数向比他小的正数取,
负数向比他大的负数取,
比如4.3取整是4,
4.7取整还是4
-4.3取整是-4
-4.7取整是-4
以下分类讨论
(1)(allcount-1)除不尽pagesize,且有余数,比如除完得5.4,经java取整后得5,我减1都除完都比五大,说明原来5页不够,我得给他+1,变成6页与预期一致.
(2)(allcount-1)能除尽pagesize比如除完得5,但我是-1后除的得5,也说明原来5页是不够的,所以我给他结果+1,变成6页,与预期一致.
至此已经涵盖了所有的可能,这个式子均与我们预期的答案相同,命题得证
他之所以用-1是因为当pagesize>1的时候你-1以后除得到的整数和不减一会是一样的,
推广的话,如果你保证pagesize>n那么你前面把-1换成-n也是可以的
这个式子是精心设计出来的,设计的比较精巧,我们可以证明他是对的,
但能证明不代表我们能发明它
这个式子比较常见,你可以尝试把他这种思想用在别的地方
一些东西需要一定的积累和灵感才能设计出来,所以你若能证明它其实就是理解了,不必再纠结怎么去发明他,或者发明的人是怎么想到的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)