C言語で文字列(charの配列)を乱数の初期値として設定したいのですが、

いいアイデアが思い浮かびません。
どなたかいいアイデアはないでしょうか?

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2014/03/08 19:24:06
  • 終了:2014/03/14 19:08:24

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4412ベストアンサー獲得回数18032014/03/08 21:03:30

こんな感じで、どうでしょうか?

unsigned get_seed(char* s) {
    unsigned ret = 0;
    while (*s++) {
        ret = (ret << 1) + *s;
    }
    return ret;
}

int main(void) {
    char* s = "a-kuma3 has answered this question";
    unsigned seed = get_seed(s);
    srand(seed);
    ...
}

その他の回答(1件)

id:a-kuma3 No.1

a-kuma3回答回数4412ベストアンサー獲得回数18032014/03/08 21:03:30ここでベストアンサー

こんな感じで、どうでしょうか?

unsigned get_seed(char* s) {
    unsigned ret = 0;
    while (*s++) {
        ret = (ret << 1) + *s;
    }
    return ret;
}

int main(void) {
    char* s = "a-kuma3 has answered this question";
    unsigned seed = get_seed(s);
    srand(seed);
    ...
}
id:TransFreeBSD No.2

TransFreeBSD回答回数657ベストアンサー獲得回数2632014/03/09 11:34:09

CRC32を使うというのはどうでしょうか。
http://ja.wikipedia.org/wiki/%E5%B7%A1%E5%9B%9E%E5%86%97%E9%95%B7%E6%A4%9C%E6%9F%BB
ここの終わりの方にコードもあります。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません