プログラム詳しい人助けて下さい

このエントリーをはてなブックマークに追加
1名無し募集中。。。
メルセンヌツイスタ使って1〜1000までの乱数を発生させたいんだけど
プログラム初心者なのでメルセンヌツイスタ(SFMT)の使い方が分からん
昨日からずっとググったりしてるんだけどどうしようもないので分かる人がいたら教えてください

http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index-jp.html
2名無し募集中。。。:2008/07/10(木) 15:42:42.22 0
ノープロブレム
3名無し募集中。。。:2008/07/10(木) 15:43:01.95 0
おれCOBOLしか使えないから・・・
4名無し募集中。。。:2008/07/10(木) 15:43:05.43 0
まずメルセンヌツイスタっていうのがわからんから説明してくれ
5名無し募集中。。。:2008/07/10(木) 15:43:18.79 0
pythonでいい?
6名無し募集中。。。:2008/07/10(木) 15:43:20.76 0
よくわからないけど
おいしいものたべてうんこしたら治るんじゃない?
7名無し募集中。。。:2008/07/10(木) 15:45:28.78 O
広大しゃん!!!!!!!
8 ◆.AWbmnWEGA :2008/07/10(木) 15:46:24.53 0 BE:38035384-2BP(409)
BASICしか習ってない
9:2008/07/10(木) 15:46:34.47 0
>>4
精度の良い乱数発生プログラムなんだけど
どうやって組み込めばいいのか分からん
10名無し募集中。。。:2008/07/10(木) 15:47:10.55 0
説明書読めよ
11:2008/07/10(木) 15:47:12.02 0
>>5
Cでお願いします
12名無し募集中。。。:2008/07/10(木) 15:47:29.46 0
ググレカス
13名無し募集中。。。:2008/07/10(木) 15:47:31.50 0
ふるえがとまらん
14名無し募集中。。。:2008/07/10(木) 15:47:41.53 0
SFMTのドキュメント読めよ
15:2008/07/10(木) 15:48:13.81 0
>>10
なんか昔のバージョンなら使い方とか載ってるんだけど
新版になってからは使い方が載ってない
16:2008/07/10(木) 15:48:47.42 0
>>14
ドキュメントが読めないから教えてほしいんです!
17名無し募集中。。。:2008/07/10(木) 15:49:41.52 0
なにがわからないのかわからない
18名無し募集中。。。:2008/07/10(木) 15:49:50.18 0
>>16
何で読めないの?
19名無し募集中。。。:2008/07/10(木) 15:50:03.72 0
>>3
会社のPC、ハードがPC9821でOSがwindows98に
販売管理のCOBOLのプログラムが入ってるんだけど、
windowsXPでエミュレータで動かせますか?
20:2008/07/10(木) 15:50:57.86 0
>>17
関数がたくさんあってどの関数を使えばいいのか分らない
21名無し募集中。。。:2008/07/10(木) 15:51:01.64 0
コンパイルしてリンクできないのか?
リンクできるけど呼び出し方がわからないのか?
22名無し募集中。。。:2008/07/10(木) 15:51:09.00 0
>>15
昔のバージョンの使い方でやってみろ
23名無し募集中。。。:2008/07/10(木) 15:53:23.27 0
init_gen_rand(seed);
gen_rand32();
24名無し募集中。。。:2008/07/10(木) 15:53:29.05 0
>>20
サンプル見たけど
ciel(genrand_res53() * 1000)
でいいんじゃないの?
25:2008/07/10(木) 15:53:39.97 0
>>21
リンクできるけど呼び出し方が分からない
>>22
やってみたけどダメだったっていうか
元々使われてる関数が違うから無理っぽかった
26名無し募集中。。。:2008/07/10(木) 15:55:04.20 0
リンクできて呼び出し方が分らないって
実行モジュールが呼べないってこと?
27名無し募集中。。。:2008/07/10(木) 15:55:47.47 0
わかったぞ英語が読めないんだろ?
28名無し募集中。。。:2008/07/10(木) 15:56:02.84 0
そんなこと忘れて彼女でも作って外で遊べよ
その方がずっと面白いぞ
29名無し募集中。。。:2008/07/10(木) 15:56:08.65 0
ランド関数使えば一発だろ
30名無し募集中。。。:2008/07/10(木) 15:57:34.24 0
>29
あれは議事だろ
31:2008/07/10(木) 15:57:43.11 0
>>23
なんか
MEXP is not defined.I assume MEXP is 19937.
って出る
ここにコンパイルの仕方が載ってるんだけど良く分からん
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/howto-compile.html
32名無し募集中。。。:2008/07/10(木) 15:58:41.51 0
残念ながらメルセデスベンツしか知らん
33:2008/07/10(木) 15:59:22.85 0
>>26
実行モジュールって言葉が分かりません
初心者でごめんなさい

>>27
正直それもあるが多少は読める

>>28
正論だが
彼女の作り方はメルセンヌツイスタの使い方より難しそう

>>28
randは精度が悪いから論文に載せられない・・・
34名無し募集中。。。:2008/07/10(木) 15:59:38.53 0
メルセンヌ素数と双子素数なら知ってる
35名無し募集中。。。:2008/07/10(木) 16:00:01.72 0
おお我が後輩よ狼に泣きつくとは何ごとか
そなたは次のレベルまで1,000,000,000のけいけんが必要じゃ
がんばれトンヌラよ
36名無し募集中。。。:2008/07/10(木) 16:00:15.00 0
>>31
assume されたならええやん
37名無し募集中。。。:2008/07/10(木) 16:00:32.77 0
専用板行けよ
過去ログ嫁とか言われろよ
38名無し募集中。。。:2008/07/10(木) 16:01:16.65 0
#ifdef __GNUC__
#warning "MEXP is not defined. I assume MEXP is 19937."
環境はなんなのさ
39名無し募集中。。。:2008/07/10(木) 16:01:36.29 0
このログ広大に送ればいいの?
40:2008/07/10(木) 16:02:07.51 0
>>34
メルセンヌツイスタはメルセンヌ数を応用して発生させる乱数生成プログラム
41:2008/07/10(木) 16:02:43.29 0
>>37
それが嫌だから狼に来てるんです><
42名無し募集中。。。:2008/07/10(木) 16:02:56.28 0
最終的にはseedとrandで動くはずだから
アルゴリズムのことなんか考えなくてもいいはずなんだけど
43名無し募集中。。。:2008/07/10(木) 16:03:11.05 0
先輩捕まえて聞けよw
44名無し募集中。。。:2008/07/10(木) 16:03:17.30 0
ぐぐれるんだから昔よりはるかに楽してるだろうに
昔の学生はどうしてたんだろうな
45名無し募集中。。。:2008/07/10(木) 16:03:47.98 0
>>38
環境?
windowsにcygwin入れてやってる

>>39
恥を晒すのはやめてください><
46:2008/07/10(木) 16:04:29.06 0
>>43
バイトに行っちゃった
47名無し募集中。。。:2008/07/10(木) 16:04:45.80 0
じゃあ明日聞け
48名無し募集中。。。:2008/07/10(木) 16:05:37.05 0
たぶん夜聞いたほうがいいんじゃないか
いくら理系が多い狼といってもまだ夕方だぞ
49名無し募集中。。。:2008/07/10(木) 16:06:45.23 0
どうやってコンパイルしてるか書いて
test.cのコンパイルでは-DMEXP=19937ってつけてるぞ
50:2008/07/10(木) 16:06:48.01 0
>>48
これが出来ないと研究が先に進まないから早めに解決したい
昼間でも暇な大学院生とか結構いるかなと思って
51名無し募集中。。。:2008/07/10(木) 16:08:18.96 O
>>1
前も宿題聞いてたな
52:2008/07/10(木) 16:09:10.00 0
>>49
確かにtest.cで>>31のURLに載ってる通りにコンパイルした時にはちゃんとコンパイルできた
今は普通にcc -o rand.exe rand.cってやってコンパイルしてるんだけど
-DMEXP=19937 ← これってなんなの?
53名無し募集中。。。:2008/07/10(木) 16:09:20.25 0
サンプルプログラムがついてないようなうんこライブラリは窓から捨てちゃえばいいよ
54:2008/07/10(木) 16:09:33.69 0
>>51
たぶん違う人
55名無し募集中。。。:2008/07/10(木) 16:10:01.77 0
-Dはマクロ展開を指示するオプション
プログラム中で#defineしたのと同じ
56名無し募集中。。。:2008/07/10(木) 16:10:08.19 0
CのマクロMEXPを19937と定義
指数部の最大値とかだろう
57:2008/07/10(木) 16:10:24.03 0
>>53
凄く有名で優秀なプログラムらしい
58名無し募集中。。。:2008/07/10(木) 16:10:58.56 0
最新のサンプルついてないのかよ
591:2008/07/10(木) 16:12:12.66 0
自己解決しました
ありがとうございました
60名無し募集中。。。:2008/07/10(木) 16:12:40.66 0
どっかにサンプルぐらい落ちてるだろ
61名無し募集中。。。:2008/07/10(木) 16:12:57.84 0
どんなに優れてても普及のためのヒト手間を省くと
世間から相手にされなくなっちゃうのが日本の研究者にはわからないんだよな
62名無し募集中。。。:2008/07/10(木) 16:13:18.31 0
>>59
ダウト
63名無し募集中。。。:2008/07/10(木) 16:13:40.84 0
>>1がコンパイル例の-DMEXP=19937を抜かしてるのが問題だろ
641:2008/07/10(木) 16:13:43.96 0
本当です
65:2008/07/10(木) 16:14:04.99 0
>>55
なるほど
-DMEXP=19937つけてコンパイルしたら>>31のエラーは出なくなった

今↓をコンパイルしてるんだけど
rand.c:12: error: 'seed' undeclared(first use in this function)
とか出る

#include "SFMT.c"

void main(){
init_gen_rand(seed);
gen_rand32();
}
66名無し募集中。。。:2008/07/10(木) 16:14:27.04 0
そりゃseedが宣言されてないじゃんw
67名無し募集中。。。:2008/07/10(木) 16:14:47.72 0
C言語の問題になりますた
68名無し募集中。。。:2008/07/10(木) 16:15:10.30 0
ホントに院生か((((;゚Д゚)))ガクガクブルブル
69:2008/07/10(木) 16:15:11.68 0
seedって何?
701:2008/07/10(木) 16:15:21.36 0
つーかプログラム板で聞いた方がいい
71名無し募集中。。。:2008/07/10(木) 16:15:27.23 0
seedを自分で定義しろってこと?
なんてマニアックな
721:2008/07/10(木) 16:15:40.98 0
ガンダムの一種ですか?
73:2008/07/10(木) 16:16:02.76 0
>>68
ゴメン
普段は回路シミュレータばっかり弄ってるからプログラムは苦手なのよ
74名無し募集中。。。:2008/07/10(木) 16:16:14.29 0
サンプルからこのへんもってこい

int main(int argc, char* argv[]) {
int seed;

if (argc >= 2) {
seed = strtol(argv[1], NULL, 10);
} else {
seed = 12345;
}
75名無し募集中。。。:2008/07/10(木) 16:16:42.78 0
>>69
乱数作るのに種いるだろ
76名無し募集中。。。:2008/07/10(木) 16:17:15.42 0
数学科じゃないのか
77名無し募集中。。。:2008/07/10(木) 16:17:25.21 0
>>65
>#include "SFMT.c"
ここは
#include "SFMT.h"
じゃないの?
78名無し募集中。。。:2008/07/10(木) 16:17:26.89 0
工学部か
79名無し募集中。。。:2008/07/10(木) 16:17:31.92 0
初期値だ初期値
80名無し募集中。。。:2008/07/10(木) 16:18:19.45 0
>>77
リンクがめんどうなんだろ
サンプルでもやってる
811 ◆cr.8Ala4/6 :2008/07/10(木) 16:19:12.74 0
偽物が多いのでちょっとトリップ付けますね
全角の1が僕です
82名無し募集中。。。:2008/07/10(木) 16:19:32.09 0
トリップつけたのが本物という証明は?
83名無し募集中。。。:2008/07/10(木) 16:19:38.61 0
もう答えでたのか
841 ◆cr.8Ala4/6 :2008/07/10(木) 16:20:49.32 0
>>82
その証明は難しいな
851 ◆cr.8Ala4/6 :2008/07/10(木) 16:21:47.53 0
>>74
持ってこいって言われてもどこに持ってくればいいのか分からん・・・
86名無し募集中。。。:2008/07/10(木) 16:22:05.32 0
これどっちが速いか試して
1+gen_rand32()/(0xffffffff / 1000 + 1)
1+int(genrand_res53()*1000)
87名無し募集中。。。:2008/07/10(木) 16:22:40.14 0
>>85
そんなんで他の部分書けるのかよ?
88名無し募集中。。。:2008/07/10(木) 16:22:58.42 0
気持ち悪い式だな
89名無し募集中。。。:2008/07/10(木) 16:23:53.43 0
ぐぐっただけじゃプログラムは書けないよ
ちゃんと頭使って
901 ◆cr.8Ala4/6 :2008/07/10(木) 16:24:14.12 0
>>87
まぁ乱数生成して回路パラメータ変えてシミュレーションするだけだから
多分そんな大変なプログラムじゃない
91名無し募集中。。。:2008/07/10(木) 16:24:25.33 0
seedは再現性のあるプログラムにしたいなら固定しなきゃいけないし
どうでもいいなら日時とか使う
92名無し募集中。。。:2008/07/10(木) 16:25:13.63 0
そして誰もいなくなった
93名無し募集中。。。:2008/07/10(木) 16:25:37.92 0
俺ももういいわ
941 ◆cr.8Ala4/6 :2008/07/10(木) 16:26:52.07 0
>>86
他の部分をどう書けばいいか教えてください!

>>89
全くその通りだと思うけど
どうしても楽しちゃう・・・
951 ◆cr.8Ala4/6 :2008/07/10(木) 16:27:42.92 0
seedはどこで宣言すればいいの?

>>92-93
ちょwww待ってよwww
もう少しだけお願いします
96名無し募集中。。。:2008/07/10(木) 16:30:25.30 0
ここで宣言しろ
97名無し募集中。。。:2008/07/10(木) 16:30:45.06 0
#include "SFMT.c"
#define seed 12345
void main(){
init_gen_rand(seed);
printf("%u\n",gen_rand32());
}
いつも同じ乱数
98名無し募集中。。。:2008/07/10(木) 16:32:00.32 0
>>74も読めないくらいのCの理解度なのか
99名無し募集中。。。:2008/07/10(木) 16:32:49.30 0
何で12345なの?
1001 ◆cr.8Ala4/6 :2008/07/10(木) 16:33:27.73 0
>>97
ありがとうございます!
でもコンパイルするとreturn type of 'main' is not 'int'って出る
101名無し募集中。。。:2008/07/10(木) 16:33:54.24 0
>>95
プログラムを実行する度に異なる乱数系列を発生して欲しいのか
プログラムを実行する度に毎回同じ乱数系列を発生して欲しいのかどっちなのさ
102名無し募集中。。。:2008/07/10(木) 16:34:43.43 0
そんなもん無視
1031 ◆cr.8Ala4/6 :2008/07/10(木) 16:34:46.07 0
>>98
その通り
104名無し募集中。。。:2008/07/10(木) 16:34:58.44 0
#include "SFMT.c"
#define seed 12345
int main(void){
init_gen_rand(seed);
printf("%u\n",gen_rand32());
return 0;
}
イライラしてきた
105名無し募集中。。。:2008/07/10(木) 16:35:28.03 0
ならintに変えればいいだろ
106名無し募集中。。。:2008/07/10(木) 16:35:48.15 O
1は1流大学生
107名無し募集中。。。:2008/07/10(木) 16:36:09.75 0
定数は大文字使っといたほうがいいぞ
108名無し募集中。。。:2008/07/10(木) 16:36:10.44 0
1の大学教えたら教えてあげる
1091 ◆cr.8Ala4/6 :2008/07/10(木) 16:36:14.11 0
>>101
正直どっちでも良い
毎回異なる乱数を発生させる為にはseedにtime関数を使えば良い事は分かりました
110名無し募集中。。。:2008/07/10(木) 16:37:22.50 0
広大生最近はバカが多いとは風の便りに聞いていたがここまで落ちぶれていたとは・・・・・・
1111 ◆cr.8Ala4/6 :2008/07/10(木) 16:37:54.21 0
>>104
昼間からイライラさせてゴメン・・・
return 0は付けなきゃだめなの?
112名無し募集中。。。:2008/07/10(木) 16:38:14.43 0
もうわざととしか思えない
1131 ◆cr.8Ala4/6 :2008/07/10(木) 16:39:08.14 0
>>108
それはちょっと・・・
少なくとも広大ではないです
広大はメルセンヌツイスタ作った教授がいるところ
114名無し募集中。。。:2008/07/10(木) 16:39:08.89 0
>>1
とりあえずチンコ晒せよカス
115名無し募集中。。。:2008/07/10(木) 16:40:26.11 0
11.12:
main()をvoidとして宣言して「mainの戻り値がない」という目障りな メッセージを消すことができるか。
A:
できない。main()はintを戻り値とし、(適切な型の)0個か2個の引数 を持つと定義しなければならない。
exit()を呼んでもまだ警告が出る のであれば、冗長であるがreturn文を挿入するしかない
(あるいは使 える環境にいるのであれば「ここには届かないよ:NOTREACHED」命令 を使う)。
References:
ANSI Sec. 2.1.2.2.1, Sec. F.5.1; ISO Sec. 5.1.2.2.1, Sec. G.5.1; H&S Sec. 20.1 p. 416; CT&P Sec. 3.10 pp. 50-51.
116名無し募集中。。。:2008/07/10(木) 16:43:11.67 0
これは酷い・・・
117名無し募集中。。。:2008/07/10(木) 16:44:03.87 0
時給1万円くれれば作ってやるぞ
1181 ◆cr.8Ala4/6 :2008/07/10(木) 16:45:25.57 0
>>104さんのお陰でできました
これで研究も進められそうです

全然プログラムが分かって無くて申し訳ないです・・・
これからはもう少しプログラムも勉強します

こんなどうしようもない院生につきあって親切に教えてくれた人たち本当にありがとうございました
119名無し募集中。。。:2008/07/10(木) 16:46:25.31 0
院生なのかよ
120名無し募集中。。。:2008/07/10(木) 16:46:48.18 O
ニートが院生を助けた
121名無し募集中。。。:2008/07/10(木) 16:47:16.75 0
やっと意味が分ったw
>>30
これも擬似だと思いますよ
122名無し募集中。。。:2008/07/10(木) 16:48:24.65 0
>>121
どんだけ長いこと考えてるんだよ
123名無し募集中。。。:2008/07/10(木) 16:50:17.17 0
仕事してた
バグが取れんw
124名無し募集中。。。:2008/07/10(木) 16:54:05.42 0
バグは取るものじゃない隠すものだ
125名無し募集中。。。:2008/07/10(木) 16:57:38.28 0
gen_rand32()使って整数演算したほうが4倍速いな
すっきりした
1261 ◆cr.8Ala4/6 :2008/07/10(木) 16:58:54.52 0
>>125
どういうこと?
127名無し募集中。。。:2008/07/10(木) 16:58:58.06 0
CPUによるんじゃないの
128名無し募集中。。。:2008/07/10(木) 17:07:31.47 0
校長先生の挨拶はプログラムの何番目ですか?
129名無し募集中。。。:2008/07/10(木) 17:08:44.94 0
1番目に決まってるだろ
130名無し募集中。。。
BASIC