8.2 算術関数

算術演算に使える関数の代表的なものを示しておきます。

abs 絶対値を求める

#include <stdlib.h>
int abs(int x)

第一引数の絶対値を返します。

実数、それも double 型用の絶対値取得のための関数は fabs() です。実数、それも float 型の絶対値を求めるためには fabsf() が用意されています。

rand 乱数を求める

#include <stdlib.h>
int rand()

呼び出すたびにランダムに異なる数値(乱数といいます)を返します。引数はなく、返す値の幅は 0〜2の31乗(2147483648)未満です。
ただしこれは疑似乱数と呼ばれる種類の乱数で、最初に srand() 関数を利用して、乱数発生の種(seed)を初期値として設定する必要があります。

srand 乱数の種を与える

#include <stdlib.h>
srand(int seed)

rand() 関数に必要な疑似乱数を発生させるための種(seed)を整数型の引数ととして与えます。戻り値はありません。
具体的には以下のような組み合わせで使います。最初に一度 srand() をランダムな数値で呼び出し(例では利用者が手で思いついた数字を入力する)、それ以降繰り返して rand() 関数を呼べば、そのたびごとに違う結果が得られます。

#include <stdio.h>
#include <stdlib.h>
main() {
  int seed, i, r;
  printf("please set the seed :");
  scanf("%d",&seed);

  srand(seed);  /* seed の設定 */
  for(i=0;i<10;i++) {
    r=rand();
    printf("%d\n", r);
  }
}

Yutaka Yasuda (yasuda@bakkers.gr.jp)