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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の質問です。 ランダムに4桁の暗証番号を出力するプログラムを作ったのですが、4947→4973 3 2022/04/16 16:47
- C言語・C++・C# 至急お願いします。C言語で.imgのファイルを読み込んで1バイトづつ出力するプログラムを作りたいので 3 2023/01/16 22:49
- C言語・C++・C# C言語 3 2022/10/04 15:07
- その他(プログラミング・Web制作) プログラミングについて(Python) 添付した画像はC言語で簡単に作ったソースで、1つの配列に5つ 3 2022/09/10 19:15
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- Java Javaの問題なのですが、 永久ループを使って以下に従って数値を出力するプログラムを作成する。 ・1 3 2023/06/06 18:43
- C言語・C++・C# 石取りゲームをC言語プログラムで教えてください 1 2022/04/09 14:16
- C言語・C++・C# C言語について。 3 2022/11/05 20:30
- C言語・C++・C# c言語 コマンドライン引数 4 2023/02/09 18:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語で簡単なパックマンゲーム...
-
ヒストグラム均等化処理プログラム
-
C言語
-
画像の拡大・縮小
-
分数の足し算をさせるプログラ...
-
c++ TCHARで文字化け
-
迷路を脱出する経路探索プログ...
-
直線補間について
-
関数とビット列
-
カードシャッフルのブログラム...
-
再起を使って迷路を解くプログ...
-
再起呼び出しの回数をカウント...
-
ヌメロンのプログラム
-
課題;素因数分解
-
コマンドプロンプトのウィンド...
-
2の補数を計算するプログラム
-
C言語で%を使わない余りの出し方
-
whileとifを使い偶数を出すには
-
C言語 4) 整数 a, b, c を入力...
-
fgetsなどのときのstdinのバッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報