
No.4ベストアンサー
- 回答日時:
標準関数のsrandとrandを使えば擬似乱数を得られます。
randは0からRAND_MAXまでの数を生成しますので、必要な範囲に縮めてあげましょう。(%を使う方法は乱数が偏ります)
1と-1でしたら、こんな方法でも計算できますね。
#include <stdio.h>
/* 1か-1をN個表示する */
#include <stdlib.h>
#include <time.h>
#define nrand(n) (int)((double)n*rand()/RAND_MAX) /* 0以上n未満の整数を返す */
#define N 100
int main(void) {
int i;
srand((unsigned int) time(NULL)); /* 乱数の種 */
for (i=0; i<N; i++) {
printf("%d ",nrand(2)*2-1); /* 0~1の乱数を2倍して1引くと-1か1ができる */
}
return 0;
}
No.5
- 回答日時:
訂正。
。0以上n未満の整数を返すマクロで、nが出る可能性があります#define nrand(n) (int)((double)n*rand()/(RAND_MAX+1.0))
No.3
- 回答日時:
おはようございます.
標準ライブラリに入っているrand()という関数を使うことで,整数値の乱数を得ることができます.
ただし,この関数は専門的には擬似乱数と呼ばれるもので,
「決まった方法である値から次の値を作る」ものです.
したがって,初期値を決めないことには延々同じ系列が出力されてしまいます.
初期値の設定はsrand()という関数を使えばできます.
以上でランダムな整数値を得ることができますので,後は,
整数値を何らかの方法で(1,-1)に変換してやれば良いということになります.
これは整数値の最上位ビットが0だったら1,
そうでなければ-1などとすれば良いでしょう(ビット演算を使ってください).
最下位ビットを使わないのは処理系によってはrand()関数の実装に問題があり,
0と1が交互に出現する恐れがあるためです
(専門的には線型合同法とよばれる手法を採用しているとこうなる恐れがあります).
ただし,もしもあなたが統計などの目的で数万件以上の乱数を必要としているならば,
ここで紹介した方法を使ってはいけません.
擬似乱数という用語で書籍などを調べて,きちんとした一様乱数源を利用してください(メルセンヌ・ツイスタ等).
参考URL:http://ja.wikipedia.org/wiki/Rand
No.2
- 回答日時:
#include <stdio.h>
#include <stdlib.h>
#define MAX_LOOP 10 /* 最大表示回数 */
int main(void)
{
int i, n;
n = 1 + (rand() % 100);
for(i=0; i<n; i++)
{
if(rand() & 1)
{
printf(" 1\n");
}
else
{
printf("-1\n");
}
}
return 0;
}
No.1
- 回答日時:
> 1と-1をランダムにn個
0, 1のいずれかを1個出力することはできますか?
0のときは強制的に-1にしてやれば、
-1, 1のいずれかを1個出力できますね。
それをn回繰り返せばよいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
whileとifを使い偶数を出すには
-
乱数で交互に偶数、奇数が、、、。
-
C言語でDOS画面のプログラム(...
-
異なるn個の整数からr個の整数...
-
条件が多い場合
-
デバッグビルドとリリースビル...
-
C言語で%を使わない余りの出し方
-
intとlongは同じ?
-
Aの値からBの値を除するとは??
-
信頼区間の1.96や1.65ってどこ...
-
c languageで 簡単な質問があ...
-
エクセルで可視セルにのみ値貼...
-
20'(角度)の計算がわかりま...
-
scanfの入力をgets関数で読み捨...
-
マイナスからプラスへ転じた時...
-
値差の%計算方法について
-
「Aに対するBの割合」と「Aに対...
-
gcc: incompatible pointer type
-
「指定されたキャストは有効で...
-
CStringをwchar_tに変換したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語で簡単なパックマンゲーム...
-
2の補数を計算するプログラム
-
c言語プログラミングについて f...
-
再起呼び出しの回数をカウント...
-
intとlongは同じ?
-
openCVの画像処理について
-
C言語
-
【C#】SQL文の中に変数を埋め込...
-
C言語プログラミング 漸化式に...
-
カードシャッフルのブログラム...
-
C++ Debug Errorについて教えて
-
デバッグビルドとリリースビル...
-
迷路を脱出する経路探索プログ...
-
C++デバックエラーについて詳し...
-
C++ bmp 透過処理
-
複数の共有メモリの作成
-
C言語で%を使わない余りの出し方
-
C言語
-
2次関数プログラムを描写する...
-
16bitで乱数を生成する方法
おすすめ情報