- 1 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 21:04:54 ]
- C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレに お願いします。 前スレ C++相談室 part66 pc12.2ch.net/test/read.cgi/tech/1231640498/ ※part63, part66 が重複していたようですので part69 としました。
- 101 名前:100 mailto:sage [2009/05/07(木) 11:37:50 ]
- まあクラスじゃなくてクラステンプレートか。
std::auto_ptr<MyAnotherClass> とかが「そういうクラス」だと思ってもらえれば。
- 102 名前:86 mailto:sage [2009/05/07(木) 11:51:26 ]
- >>87-101
サンクス。 でかいクラスじゃなく、リソース漏れも起こすことはないハズのコーディングにしてあるので 大丈夫だ。どうも!
- 103 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 15:40:22 ]
- >>101
thx
- 104 名前:デフォルトの名無しさん [2009/05/09(土) 16:12:48 ]
- std::vector< std::pair< key_t, value_t > > v;
for( std::vector< std::pair< key_t, value_t > >::iterator i = i.begin();.... というコードがあるとして、for文の「std::vector< std::pair< key_t, value_t > >」のように 長いテンプレート型書く必要が多々あり、それが面倒に感じます。 「v.self_type」のような、変数名から型を引っ張ってくるような 仕組みは出来ないものでしょうか?
- 105 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 16:15:39 ]
- typedef すれば?
- 106 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 16:22:02 ]
- 次期規格でdecltypeというのが出来るが今は無理
- 107 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 16:25:10 ]
- typedef しとけ
- 108 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 16:32:54 ]
- >>105-107
承知しました。 ありがとうございました。
- 109 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:09:32 ]
- decltype よりゃ auto じゃね
- 110 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:10:34 ]
- >>107
だからC++03ではtypmlateのtypedefは無理だっつーに
- 111 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:11:17 ]
- ×typmlate
○template
- 112 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:16:55 ]
- >>110
部分特殊化のような形の typedef は無理だが >>104 みたいなのは全く問題ないっつーか、常套手段だろ
- 113 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:17:48 ]
- >>110
パラメータが確定してるテンプレートクラスならできるぞ できないのはtypedefのテンプレート
- 114 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:17:57 ]
- >>110
・・・まさかやったこと無いわけじゃないよな?
- 115 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:21:48 ]
- typedef typename std::vector< std::pair< key_t, value_t > > hoge;
通りませんでしたよ^^ VC2008
- 116 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:30:40 ]
- typename要らない
- 117 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:55:02 ]
- 釣り臭いな
- 118 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 18:03:04 ]
- >>115
using alias使うんだよ using hoge = std::vector< std::pair< key_t, value_t > >;
- 119 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 18:19:02 ]
- 素だろ
また的外れてるし。
- 120 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 18:48:32 ]
- >通りませんでしたよ^^
これは釣りだろ
- 121 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 23:06:38 ]
- VC++の学習用にサブPCを導入しようと思うのですが、
atom330でも問題なさそうでしょうか あまりに重そうならE1400辺りで自作しようと思います
- 122 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 23:46:34 ]
- 別に問題ないだろ
IDE使いたいなら話は別だが
- 123 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 00:12:43 ]
- >>121
全く問題ないよ。 IDE使ったところで問題なんて起きないから大丈夫。
- 124 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 00:20:19 ]
- VC++2008EE使っていますが、
変数の値を常に表示する方法はありますか? 現在はcout<<hoge;みたいなものを随所に入れています VBにあったウォッチウィンドウみたいな奴が欲しいです・・
- 125 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 00:34:37 ]
- メニューの
デバッグ|ウィンドウ|ウォッチ デバッグ|クイックウォッチ
- 126 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 00:34:47 ]
- >>124
無いわけ無い。 それともEEだと存在しないとか??
- 127 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 00:44:28 ]
- >>125-126
ttp://www1.axfc.net/uploader/Img/so/45753.jpg ないっぽいです・・ イミディエイトウィンドウならあるんですが、無料だとこんなものかもしれません
- 128 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 00:51:16 ]
- >>127
メニューにはデバッグ実行中でないと出てこないはず というか、初期状態でデバッグ実行したら下に自動変数とかローカル変数のタブ出てこない?
- 129 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 00:53:32 ]
- 確かに間違って閉じちゃうと探すのに苦労するね
- 130 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 00:55:52 ]
- ああ、出てきましたありがとう!!!
コッソリタブが増えてました こりゃ気づきませんぜ・・
- 131 名前:デフォルトの名無しさん [2009/05/10(日) 05:03:03 ]
- >>130
いや、まぁ・・・気づくけどな。
- 132 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 09:21:46 ]
- 誰でもそりゃわかってりゃ気づくけどな。
普通はなかなか気づかないだろう。
- 133 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 09:26:07 ]
- VC6の時代から使ってる人なら「必ずあるはずだ」って必死に探すなw
- 134 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 09:29:17 ]
- 有用なサービスほど消えることは無い、 無いよな、 しかし気がつくと、 いや、無いと言ってくれー
- 135 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 11:09:06 ]
- メニューから消えてるだけのこともある
いくつかのショートカットキーとか
- 136 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 17:08:18 ]
- 動的なハッシュテーブルを作っていて、[]演算子をオーバーロードしようと考えているんですが、
代入する時と参照する時とで挙動が完全に変わってしまいます。 C#のgetメソッドやsetメソッドのような完全な書き分けってどうやるんでしたっけ。
- 137 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 17:12:27 ]
- そういう書き分けは無いのでやるなら別関数にすれ
挙動が異なるなら、別の表記を取るのが一番間違いが無い
- 138 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 17:13:10 ]
- 書き分けは無理
proxyクラスでも使え
- 139 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 17:13:45 ]
- const メンバ関数か非 const メンバ関数かという差で挙動を変える事はできるが、
それで大丈夫なものなのかは疑問だ
- 140 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 17:14:40 ]
- [] の戻り値をクラスにする方法もあるけど・・・
個人的にはあまり好きではないな
- 141 名前:136 mailto:sage [2009/05/10(日) 17:16:05 ]
- >>137-139
thx いくらヘルプを読んでも分からないわけだ。
- 142 名前:136 mailto:sage [2009/05/10(日) 17:16:58 ]
- >>140
やっぱそれしかないか・・・
- 143 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 17:18:27 ]
- 演算子のオーバーロードはあまり乱用すべきものではないので
細かい技法を使わないと演算子のオーバーロードでは実現できないような処理は 普通のメンバ関数にしてしまった方がいいと個人的には思う
- 144 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 17:48:08 ]
- >代入する時と参照する時とで挙動が完全に変わってしまいます。
同じように見せたいのなら<map>みたいにすればいいと思うけど
- 145 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 18:00:21 ]
- std::cin >> hoge;で受け取れるような自作クラスMyClassのオペレータオーバーロードはどうすればよいのですか?
std::cout << hoge;ならサンプルコードが良く見つかるのですが。。。
- 146 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 18:17:54 ]
- 同じようにすりゃ良いじゃん
- 147 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 18:22:19 ]
- >>146
というのは、例えば std::string str; std::cin >> str; としてstrから適切に処理すれば良いってことですか?
- 148 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 18:32:28 ]
- std::complex<> を参考にしろよ
(n,m) の形式で読み取るが、どのようにして実現しているのか 考えるのも楽しいものだ
- 149 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 18:33:27 ]
- istream &operator >>( istream&, const MyClass& );
- 150 名前:147 mailto:sage [2009/05/10(日) 19:52:38 ]
- >>148
ありがとうございます。 さっそく見てみます。 >>149 ありがとうございます。 宣言の方は std::ostream& operator << 〜 で理解しました。
- 151 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 21:46:01 ]
- C++ code - 31 lines - codepad
ttp://codepad.org/YWNCgmUO このソースはgccに付いてきた std::complex<〜>のstd::istream& operator>>(std::istream&,complex&);のソースなのですが、 この if (__ch == ')') __x = complex<_Tp>(__re_x, __im_x); else __is.setstate(ios_base::failbit); が何をしているのか分かりません。 自分なりに推測するとstd::istreamで読み込んでいった結果、所定のフォーマットになっていない(閉じ括弧がおかしい)場合にエラーを伝えるべくsetstateとやらをしているようなのですが、 __is.setstate(ios_base::failbit); ってどういう意味ないし効力なのでしょうか?
- 152 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 22:00:38 ]
- std::ios::failbit が立つと、それ以降の入力は一切行われなくなる
これがCとは違う所 この状態をクリアするにはis.clear()を行う
- 153 名前:151 mailto:sage [2009/05/10(日) 22:02:27 ]
- >>152
フラグ立てですか。 読み込みに失敗したと言うことで、エラー状態にしているわけですね。 ありがとうございます。 ・・・でも何で例外を投げる仕様にしなかったのでしょう? 使いづらそうな。。。
- 154 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 22:04:40 ]
- C++の本ってみんな今何読んでる?
- 155 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 22:05:30 ]
- 今は何も読んでない
- 156 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 22:06:21 ]
- >>153
例外を投げる事もできる ただ歴史的経緯があって例外がC++に存在しなかった時代から iostreamは使われて来ているわけでデフォルトで例外はOFFに されている 例外を投げるにはメンバ関数exceptions()にトリガとなるビットを セットすればよい
- 157 名前:153 mailto:sage [2009/05/10(日) 22:14:28 ]
- >>156
なるほどー! サンクス。了解できた。
- 158 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 22:15:39 ]
- >>154
Boost C++ libraries 第二版
- 159 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 22:45:39 ]
- >>154
はじめてのC。 電車の中で立ち読みして JKやOLからの冷たい視線でたまらなく興奮する人にお勧め。
- 160 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 22:48:21 ]
- >>154
やさしいC++ 電車の中で読む度胸はないぜ
- 161 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:01:31 ]
- 配列に配列を代入したいときは、
配列1[i]=配列2[i]などとしてforで回すのが一般的でしょうか
- 162 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:04:14 ]
- C++なら<algorithm>のcopy関数を使う方が一般的
- 163 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:05:59 ]
- memc(ry
- 164 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:07:18 ]
- つ std::copy
一見関数だらけになるが、恐ろしいほど最適化される。
- 165 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:09:03 ]
- >>162-164
ありがとうございます とりあえず全部試して見ます
- 166 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 08:04:07 ]
- >>154
Programming - Principles and Practice Using C++
- 167 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 22:16:57 ]
- std::vector<char> v(256);
で &v[0] を char 256個の配列として扱って良いものですか?
- 168 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 22:41:08 ]
- >>167
> &v[0] を char 256個の配列として扱って良いものですか? v[0]でvの先頭要素のリファレンスが返ってくる。 そして&v[0]はそのアドレスを取得している。 よって先頭アドレスが取得できるのか?ということかい? たしかOKと聞いたことがあるなぁ。 C++編(標準ライブラリ) 第2章 vector ttp://www.geocities.jp/ky_webid/cpp/library/002.html の○生の配列との関連のところで。
- 169 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 23:11:26 ]
- >>167
ええよ C++98とC++03間の変更点の一つにvectorはリニアアドレス↑に 取られる事が保証されたというのがある 規格票を見れば書いてあるはず stringはまだでc++0xで保証される予定
- 170 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 05:29:54 ]
- GUIを考えています。
例えば、ボタンの上にマウスを持っていった時に、ヘルプメッセージを出す事を考えます。 所謂コマンドパターンによる実装になると思うのですが、 ボタンが親子関係でもないオブジェクトの参照を持つ事になり、気持ち悪く感じます。 これは気にしても仕方ない事なのでしょうか?
- 171 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 08:13:10 ]
- 仕方ないというより、別に気持ち悪くないし。
- 172 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 18:48:03 ]
- 履歴一覧を表示する元に戻すボタンでも実装するのか?
>所謂コマンドパターン って言ってみたかっただけなんじゃ
- 173 名前:167 mailto:sage [2009/05/13(水) 21:17:48 ]
- >>168, 169
ありがとうございます。 std::string の c_str() のようにポインタを取得するというメソッドが 無いので、もしかしてやっちゃいけないことなのかと不安に思ったのです。
- 174 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 21:43:46 ]
- C/C++の趣味グラマなんだけど、
アセンブラも勉強した方がいいのかな?
- 175 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 21:47:28 ]
- わざわざしなくていいと思うよ
意識せずとも、いずれ自然に必要になって自然に勉強してる
- 176 名前:174 mailto:sage [2009/05/13(水) 21:52:03 ]
- >>175
ほほう、そんなもんなのか。ありがとう。 むしろもうちょっと高級言語も知っとこうかなぁ。。。
- 177 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 23:27:37 ]
- C/C++をやると平気でインラインアセンブラを書くようになるよな
特にSSE2/SSE3関連は
- 178 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 00:48:26 ]
- >>171,172
クラスの関連が複雑になるのと、オブジェクトの寿命管理の点が気になりました。 > 履歴一覧を表示する元に戻すボタンでも実装するのか? これも1つです。 ソースの見通しが悪くなり、あとで機能を追加したいと思った時に困るのではないかと思いました。
- 179 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 01:13:32 ]
- ササビーってIntelから出るけどあれどうなの?
- 180 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 01:53:25 ]
- 俺、趣味でオセロプログラム書いてるけど、>>177みたいなことに手を出してみた。
最初は難しいイメージがあったが、やってみるとそうでもなかった。
- 181 名前:デフォルトの名無しさん [2009/05/14(木) 02:25:47 ]
- 0から1の乱数を表示させるプログラムがほしいんですがわかる人いますか?
調べてみてはいるのですが、なかなかうまく動きません。 乱数生成のためのソフトとかはいるのでしょうか? もしお暇がありましたらよろしくおねがいします。
- 182 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 02:30:59 ]
- >>181
今、どれくらいの知識を持ってるの? どんなコード書いてみたの? とりあえず、標準Cライブラリの rand っていう関数は知ってる?
- 183 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 02:31:35 ]
- double r;
srand((unsigned int)time(0)); r = rand() / RAND_MAX; printf("%lf", r);
- 184 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 02:44:00 ]
- static_cast<double>(rand()) / RAND_MAX;だろとツッコミがほしいんだろ
- 185 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 02:54:43 ]
- >>183
きっと0か1しか返さないぞ。 >>178 >ボタンが親子関係でもないオブジェクトの参照を持つ ここでいってるオブジェクトってコマンドクラスのこと? 同じボタンの機能がころころ変化するのでもなければ 参照を持つ必要なんて無いと思うけど? どうしてもUIにヘルプ文字列を埋め込みたくないのなら コントロールクラスに自分(ボタン)が今どんな機能なのか 問い合わせるメソッドでも作ったら?
- 186 名前:デフォルトの名無しさん [2009/05/14(木) 03:34:01 ]
- >>182
rand関数はさっきから学びはじめたばかりです。 知識は基本的なプログラムならつくれる程度です。
- 187 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 03:38:42 ]
- randは本格用途では使い物にならんぞ
ゲームのサイコロ振るくらいに使うならいいけど
- 188 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 03:40:12 ]
- >>186
rand関数は、0 から RAND_MAX までの範囲の整数を返す。 (RAND_MAX は実際にはある特定の数値であり、コード中に RAND_MAX と書けばその数値として扱われる) 後は、0 から RAND_MAX までの範囲の整数を、0 から 1 までの間の小数の値に変換すればよい。 >>183-185あたりを参考に。まだ分からんところがあったら聞いてくれ。 もし本格的な乱数を使用したいなら、boostのrandomってのを調べてみるといいが、 まあそこまでする気がないならrandでいいよ。
- 189 名前:デフォルトの名無しさん [2009/05/14(木) 03:43:14 ]
- >>187
本格用途ではなくごく簡単なプログラムで、サイコロを振る程度です。 >>188 rand関数について自分でも調べていたところです。 丁寧におしえていただきありがとうございます。 もしわからないことがあったら書き込みたいと思います。 ありがとうございました!
- 190 名前:189 [2009/05/14(木) 04:34:11 ]
- #include <stdio.h>
#include <stdlib.h> #include <time.h> int main(void) { double random; srand((unsigned) time(NULL)); // rand関数による乱数生成を不規則にする for(int i=0; i<20; i++){ random = (double)rand()/RAND_MAX; // 0から1までの乱数の生成 printf("%f\n",random); // 表示する } } ここでのアドバイスなどをもとにして自分でつくりました。 コメントは自分でつけたので語弊があるかもしれません。
- 191 名前:189 [2009/05/14(木) 05:08:06 ]
- #include <stdio.h>
#include <stdlib.h> #include <time.h> int main(void) { double random; srand((unsigned) time(NULL)); // rand関数による乱数生成を不規則にする for(int i=0; i<20; i++){ random = (double)rand()/RAND_MAX; // 0から1までの乱数の生成 printf("%f\n",random); // 表示する } } ここでのアドバイスなどをもとにして自分でつくりました。 コメントは自分でつけたので語弊があるかもしれません。
- 192 名前:189 [2009/05/14(木) 05:11:06 ]
- すみません一つはまちがいです。
上のプログラムだと乱数表示はされるのですが 一個だけ乱数表示するプログラムを実行すると、何度実行してもほとんど変わらない乱数 (例えば、0.963742 ⇒0.972378 ⇒0.981201など) になってしまいます。 良い解決方法はないでしょうか?
- 193 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 05:37:58 ]
- win32環境ならtime()をGetTickCount()なりQueryPerformanceCounter()なりで置き換えるとか。
- 194 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 06:28:58 ]
- >>185
> ここでいってるオブジェクトってコマンドクラスのこと? > 同じボタンの機能がころころ変化するのでもなければ > 参照を持つ必要なんて無いと思うけど? ヘルプメッセージを表示するクラスのメンバ関数をboost::functionに入れてボタンクラスに渡すという意味です。 Clickなど他のイベントも同様に「他のクラスのメンバ関数をboost::functionに入れて〜」とやっていったらクラスの関連が複雑になるのではないのかと。 また、boost::functionの中で保持されているポインタの寿命(有効か)の不安を感じます。
- 195 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 06:33:38 ]
- random = (double)rand()/(RAND_MAX+1.0); // に、しとけ。
- 196 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 07:42:43 ]
- struct A{virtual void operator()()=0;};
struct B:A{virtual int operator()(int)=0;}; struct C{A&x;C(A&a):x(a){} int operator()(int i){return static_cast<B&>(x)(i);}}; struct D:A{void operator()(){}} d; int f(){ C c(d); c(); return c(1u); // これ・・・ } コンパイルを通ってしまわない様にするにはどう改造すればいいのでしょう?
- 197 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 08:01:28 ]
- >>196
コンパイルが通らないようにする方法ならいくらでもわるわけで、 何がしたいのか挙げてもらわないと望む答えは得られないでしょう。
- 198 名前:196 mailto:sage [2009/05/14(木) 08:10:12 ]
- void operator()(){x();} を書き忘れ
struct C{A&x;C(A&a):x(a){} int operator()(int i){return static_cast<B&>(x)(i);} void operator()(){x();}};
- 199 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 09:03:46 ]
- >>195
なんのために+1.0するの?
- 200 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 09:06:17 ]
- >>199
結果に整数 N をかけることで、簡単に N とおりの選択に使う乱数が得られる。 「0 から 1 の乱数」が 1.0 を含んでいると、こうはいかない。
- 201 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 09:12:53 ]
- >>200
今回の目的は 「0から1の乱数を表示させる」 だけど、いいの?
|

|