1、 三角函式
double sin (double); 正弦
double cos (double);餘弦
double tan (double);正切
2 、反三角函式
double asin (double); 結果介於[-PI/2, PI/2]
double acos (double); 結果介於[0, PI]
double atan (double); 反正切(主值), 結果介於[-PI/2, PI/2]
double atan2 (double, double); 反正切(整圓值), 結果介於[-PI, PI]
3 、雙曲三角函式
double sinh (double);
double cosh (double);
double tanh (double);
4 、指數與對數
double exp (double);求取自然數e的冪
double sqrt (double);開平方
double log (double); 以e為底的對數
double log10 (double);以10為底的對數
double pow(double x, double y);計算以x為底數的y次冪
float powf(float x, float y); 功能與pow一致,只是輸入與輸出皆為浮點數
5 、取整
double ceil (double); 取上整
double floor (double); 取下整
6 、絕對值
double fabs (double);求絕對值
double cabs(struct complex znum) ;求複數的絕對值
7 、標準化浮點數
double frexp (double f, int *p); 標準化浮點數, f = x * 2^p, 已知f求x, p ( x介於[0.5, 1] )
double ldexp (double x, int p); 與frexp相反, 已知x, p求f
8 、取整與取餘
double modf (double, double*); 將引數的整數部分通過指標回傳, 返回小數部分
double fmod (double, double); 返回兩引數相除的餘數
9 、其他
double hypot(double x, double y);已知直角三角形兩個直角邊長度,求斜邊長度
double ldexp(double x, int exponent);計算x*(2的exponent次冪)
double poly(double x, int degree, double coeffs [] );計算多項式
nt matherr(struct exception *e);數學錯誤計算處理程式
ios 三種隨機數方法
ios 有如下三種隨機數方法:
1. srand((unsigned)time(0)); //不加這句每次產生的隨機數不變
int
i = rand() %
5;
2. srandom(time(0));
int
i = random() % 5;
3. int
i = arc4random() % 5 ;
注:rand()和random()實際並不是一個真正的偽隨機數發生器,在使用之前需要先初始化隨機種子,否則每次生成的隨機數一樣。
arc4random() 是一個真正的偽隨機演算法,不需要生成隨機種子,因為第一次呼叫的時候就會自動生成。而且範圍是rand()的兩倍。在iPhone中,RAND_MAX是0x7fffffff (2147483647),而arc4random()返回的最大值則是 0x100000000 (4294967296)。
精確度比較:arc4random() > random() > rand()。
常用方法:arc4random
1、獲取一個隨機整數範圍在:[0,100)包括0,不包括100
int x = arc4random() % 100;
2、 獲取一個隨機數範圍在:[500,1000],包括500,包括1000
int y = (arc4random() % 501) + 500;
3、獲取一個隨機整數,範圍在[from,to],包括from,包括to
-(int)getRandomNumber:(int)from to:(int)to
{
return (int)(from + (arc4random() % (to – from + 1)));
}
隨機數的範圍是否包含邊界函式,我個人有點迷茫,因為用簡單的數進行測試時第二種方法包含了邊界函式,第三種直接錯誤;但是從別的地方看到有的說包含邊界函式有的說不包含,所以大家看的時候自己記得簡單測試來避免一些不必要的麻煩