2017-07-06 4 views
-1

gprofにさまざまなソートアルゴリズムのランダムな値を生成して結果を比較しようとすると、random()関数はインスタンス内で同じ値を作成していました。同じ順序で。それを取り除く方法はありますか?random()関数はlinux(grof)中で同じ値を返します

例私はバブルソートをプロファイリングしてみましたので、ランダムに10000の値を作成し、バブルソートしました。以前と同じ順序で同じ値の値を生成すると10000の値を返します。

私が値を1000に変更したとき、以前のテストの最初の1000の値はこの場合とまったく同じでした。私は、正の整数だけでなく、正の整数、負の整数のような異なる可能性で値の範囲を変更しました。 random()関数が同じ値を生成している理由は何ですか?それを修正する方法はありますか?

+0

働いていますか?それはC、C++なのでしょうか? – jww

+0

"random()関数"はあいまいです。言語を指定する必要があります(OSの指定よりも重要です)。 –

+0

@jww私はC –

答えて

1

ランダムを使用している場合は、常に同じ結果が得られるシードを提供する必要があります。使用する共通のシードは、現在の時刻です。

ここに見られるように:どのような言語あなたとHow to generate a random number in C?

#include <time.h> 
#include <stdlib.h> 

srand(time(NULL)); // should only be called once 
int r = rand();  // returns a pseudo-random integer between 0 and RAND_MAX 
+0

を使用していますそれを詳しく教えてくださいできますか? –

+0

@ManojOffoどの言語を使用していますか? –

+0

私はCを使っています.......... –

関連する問題