iOS開發常用函式

有稜角的圓發表於2016-05-19

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)));

}

隨機數的範圍是否包含邊界函式,我個人有點迷茫,因為用簡單的數進行測試時第二種方法包含了邊界函式,第三種直接錯誤;但是從別的地方看到有的說包含邊界函式有的說不包含,所以大家看的時候自己記得簡單測試來避免一些不必要的麻煩

相關文章