<?php
$var = 123;
//直接寫會報錯 錯誤抑制符
settype($var,"123");
//前面寫上 @就會返回null
@settype($var,"123");
var_dump($var1);
@var_dump($var2);
//報錯
echo (3/0);
//inf 無窮大inf
echo @(3/0);
#define inf 0x3f3f3f3f
0x3f3f3f3f的十進位制是1061109567,也就是10^9級別的(和0x7fffffff(32-bit int的最大值)乙個數量級),而一般場合下的資料都是小於10^9的,所以它可以作為無窮大使用而不致出現資料大於無窮大的情形。
另一方面,由於一般的資料都不會大於10^9,所以當我們把無窮大加上乙個資料時,它並不會溢位(這就滿足了「無窮大加乙個有窮的數依然是無窮大」),事實上0x3f3f3f3f+0x3f3f3f3f=2122219134,這非常大但卻沒有超過32-bit int的表示範圍,所以0x3f3f3f3f還滿足了我們「無窮大加無窮大還是無窮大」的需求。
最大好處:
如果我們想要將某個陣列清零,我們通常會使用memset(a,0,sizeof(a)),但是當我們想將某個陣列全部賦值為無窮大時(例如解決圖論問題時鄰接矩陣的初始化),就不能使用memset函式了,因為memset是按位元組操作的,它能夠對陣列清零是因為0的每個位元組都是0,現在好了,如果我們將無窮大設為0x3f3f3f3f,那麼奇蹟就發生了,0x3f3f3f3f的每個位元組都是0x3f!
所以要把一段整型陣列全部置為無窮大,我們只需要 memset(a,inf,sizeof(a))
高數 無窮小與無窮大
無窮小 定義 如果函式f x 在x x0 或者x 時極限為0,則稱函式f x 為當x x0 或者x 時的無窮小。特別的 以0為極限的數列稱為當n 時的無窮小。如 lim 1 x 0 所以函式1 x為當x 時的無窮小。x lim x 1 0,所以函式x 1為當x 1時的無窮小 x 1 無窮小與函式極限...
fill函式與程式設計無窮大
程式設計中無窮大的設定 很多人可能設為0x7fffffff,這個數的確是32 bit int的最大值,符號位為0,其他的都是1 但在很多情況下,0x7fffffff會出現錯誤,比如溢位,這樣兩個無窮大數相加會變成負數,還有如在做dijkstra求最短路時,當做鬆弛操作,判斷if d u w u v ...
證明 log n 與nlogn是等價無窮大
log的底大於1即可 1 首先由stirling s formula 也就是分子 分母是等價無窮大 n oo 2 再來證明log n 與 nlogn是等價無窮大 n oo 挺不可思議的,n 與 n n相差很大,但取對數後就相差不了多少了。再上張圖 看圖發現兩者還不是很 靠近 我想了一下原因,還是因為...