C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
前スレ
C言語なら俺に聞け 142
http://mevius.2ch.net/test/read.cgi/tech/1502364083/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
C言語なら俺に聞け 143
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ b375-rVGZ)
2017/10/27(金) 21:28:08.20ID:pAogLeJi0695デフォルトの名無しさん (ワッチョイ a66e-hJGX)
2017/12/04(月) 05:34:47.44ID:k2OIwnad0 ただ単にCが嫌いなだけだね
696デフォルトの名無しさん (ワッチョイ 6d81-JjO2)
2017/12/04(月) 06:16:54.02ID:+uAdunIC0 Cはクラスがないせいで戻り値が使い物にならん
中でMallocして返すとすぐメモリリークする
文字列や配列を扱う関数は
第一引数と第二引数に結果格納用の配列と最大長を渡すというまだるっこしい作業をせんといかん
Cで言語を学ぶと悪いコーディングの癖がついてしまう
中でMallocして返すとすぐメモリリークする
文字列や配列を扱う関数は
第一引数と第二引数に結果格納用の配列と最大長を渡すというまだるっこしい作業をせんといかん
Cで言語を学ぶと悪いコーディングの癖がついてしまう
697デフォルトの名無しさん (ワッチョイ a66e-hJGX)
2017/12/04(月) 06:36:05.53ID:k2OIwnad0698デフォルトの名無しさん (ワッチョイ 6d81-JjO2)
2017/12/04(月) 19:47:02.53ID:+uAdunIC0 そんなにばかなことをいっただろうか
699デフォルトの名無しさん (アウアウカー Sa55-iHXH)
2017/12/04(月) 19:55:28.93ID:vegQ3dVaa 馬鹿っぽさ満載
700デフォルトの名無しさん (ササクッテロル Spbd-UEA0)
2017/12/04(月) 20:03:09.02ID:8HzNB2U5p オブジェクトへのポインタを1つ追加するだけでリエントラントな作りになるだろうに。
701デフォルトの名無しさん (アウアウカー Sa55-iHXH)
2017/12/04(月) 20:15:20.01ID:vegQ3dVaa 構造体へのポインタでも使ってくれ
>>696
それがいい習慣というものです、配列(の先頭)と文字列長をセットで扱うのは基本中の基本です
win32api をみればわかりますが、一度目には自分が用意しなければならない領域の大きさについてお伺いをたててから、
二度目にやっと目的の情報を手に入れる、これは C ではセットですね
c++ で文字列型のような便利なアイテムを使っていたために、だんだん馬鹿になってきていたことに、最近ようやく気がつきました:−)
それがいい習慣というものです、配列(の先頭)と文字列長をセットで扱うのは基本中の基本です
win32api をみればわかりますが、一度目には自分が用意しなければならない領域の大きさについてお伺いをたててから、
二度目にやっと目的の情報を手に入れる、これは C ではセットですね
c++ で文字列型のような便利なアイテムを使っていたために、だんだん馬鹿になってきていたことに、最近ようやく気がつきました:−)
703デフォルトの名無しさん (ワッチョイ 5db3-7XMe)
2017/12/04(月) 20:28:21.15ID:jfjVyC4z0 バッファの大きさを受けて範囲内で書き込む sprintf じゃなくて
sprintf のフォーマット処理した結果、こんだけの大きさが欲しいって答える関数はないのかな
sprintf のフォーマット処理した結果、こんだけの大きさが欲しいって答える関数はないのかな
>>703
そうそう、それほしいですね
そうそう、それほしいですね
705デフォルトの名無しさん (アウアウカー Sa55-iHXH)
2017/12/04(月) 20:43:45.92ID:vegQ3dVaa >>703
snprintf
snprintf
707デフォルトの名無しさん (ワッチョイ 5db3-7XMe)
2017/12/04(月) 20:50:25.96ID:jfjVyC4z0708デフォルトの名無しさん (ワッチョイ 5db3-7XMe)
2017/12/04(月) 21:02:20.28ID:jfjVyC4z0 >>707 自己レス
C99 から戻り値が完全な長さを答えてくれるみたい
なので len = snprintf(buf, 0, .... ); len+1 以上確保して snprintf(buf, len+1, .... );
これが出来るのか
C99 から戻り値が完全な長さを答えてくれるみたい
なので len = snprintf(buf, 0, .... ); len+1 以上確保して snprintf(buf, len+1, .... );
これが出来るのか
710デフォルトの名無しさん (ワッチョイ 967f-HOnN)
2017/12/04(月) 22:32:25.86ID:TOOi+5oW0 >>708
普通は、とりあえずやってみて戻り値判定したあと切り捨てられていたら大きめのバッファにreallocしてつかうんじゃないかな。
確保するメモリサイズは一定の方がいいと思うんだ。
まぁ、Cなら大抵の場合、サイズオーバーでエラー処理へとばす気もするけれど。。。。
普通は、とりあえずやってみて戻り値判定したあと切り捨てられていたら大きめのバッファにreallocしてつかうんじゃないかな。
確保するメモリサイズは一定の方がいいと思うんだ。
まぁ、Cなら大抵の場合、サイズオーバーでエラー処理へとばす気もするけれど。。。。
711デフォルトの名無しさん (ワッチョイ 6d9f-HgL3)
2017/12/04(月) 22:35:03.23ID:iGjrIGoV0 asprintf() も良いよね。
GNUの拡張だけど。
GNUの拡張だけど。
712デフォルトの名無しさん (ブーイモ MM8e-cp23)
2017/12/05(火) 00:24:41.12ID:64NxbaBtM a55h01e()もいいぞ
拡張するとアレだけど
拡張するとアレだけど
713デフォルトの名無しさん (ワッチョイ 1e8a-mhkU)
2017/12/05(火) 01:57:36.13ID:hFLcfi/C0714デフォルトの名無しさん (ワッチョイ 3d93-kA4S)
2017/12/05(火) 06:27:11.01ID:h9iE2Dgl0715デフォルトの名無しさん (アウアウカー Sa55-iHXH)
2017/12/05(火) 09:17:09.05ID:lXQHSkZJa716デフォルトの名無しさん (ワッチョイ a66e-hJGX)
2017/12/05(火) 10:03:46.62ID:5svgdXUG0 asshole
717デフォルトの名無しさん (スプッッ Sdea-DJnL)
2017/12/05(火) 10:08:31.35ID:hd3ECn32d >>712
ムカついたらその関数名いただくわ。
ムカついたらその関数名いただくわ。
719デフォルトの名無しさん (ワッチョイ 3d93-kA4S)
2017/12/05(火) 19:06:50.63ID:h9iE2Dgl0 -able は「〜することができる」という意味を加える接尾語と解釈できるから
azn と略せる何か動詞っぽい操作を思いつけば char aznable; を
「合法的に」使うことができるね。
単なるフラグなら int なり bool なりを使え、と言われると弱いけど。
azn と略せる何か動詞っぽい操作を思いつけば char aznable; を
「合法的に」使うことができるね。
単なるフラグなら int なり bool なりを使え、と言われると弱いけど。
720デフォルトの名無しさん (ワッチョイ a99f-kgrz)
2017/12/05(火) 20:13:34.78ID:bbZMw2AU0721デフォルトの名無しさん (ワッチョイ 1e8a-mhkU)
2017/12/05(火) 22:18:54.85ID:hFLcfi/C0 15行の関数量産したらfunc1, func2, ...となるのが目に見えている
途中の欠番で変更履歴の推測も可能
素晴らしいドキュメントだな
途中の欠番で変更履歴の推測も可能
素晴らしいドキュメントだな
722デフォルトの名無しさん (ワッチョイ 6d81-JjO2)
2017/12/05(火) 22:26:12.48ID:CCSnWp9D0 なるわけないだろ絶対ならない
723デフォルトの名無しさん (ワッチョイ b5b3-9GJZ)
2017/12/05(火) 22:46:50.50ID:oTa/T8dQ0 ファンクなあ。
アシッドテイストを入れてもう少しオサレな感じにすれば爆発的にヒットするだろうになあ。
アシッドテイストを入れてもう少しオサレな感じにすれば爆発的にヒットするだろうになあ。
724デフォルトの名無しさん (ワッチョイ 3d9f-JjO2)
2017/12/05(火) 23:16:38.70ID:KWhjoBwr0 >>721
私は馬鹿です、まで読んだ
私は馬鹿です、まで読んだ
725デフォルトの名無しさん (ワッチョイ 6681-NeLc)
2017/12/06(水) 00:22:59.42ID:6EAgLXyL0 関数名はプログラマがこう動いて欲しいという願望まで
726デフォルトの名無しさん (ブーイモ MM8e-cp23)
2017/12/06(水) 00:44:05.84ID:2vt65plVM func なんて関数名見かけたら fack に置き換えるわ
727デフォルトの名無しさん (スップ Sdea-aUI1)
2017/12/06(水) 01:05:14.08ID:fTW9mDM3d oh miso sperm
728デフォルトの名無しさん (ワッチョイ 7db3-VWpS)
2017/12/06(水) 08:50:44.53ID:GNciMIPS0 変数名とか省略禁止なのにfunc
729デフォルトの名無しさん (アウアウカー Sa55-HgTM)
2017/12/06(水) 11:23:20.22ID:2AYHpw2Ha もうkansuu()って関数名にしとけよ
730デフォルトの名無しさん (ワッチョイ b623-ZQia)
2017/12/06(水) 11:49:40.40ID:vFG2ezd00 >>728
ドイツ語とか関数名変数名だけでコード9割埋まりそう
ドイツ語とか関数名変数名だけでコード9割埋まりそう
731デフォルトの名無しさん (アウアウカー Sa55-kbEZ)
2017/12/06(水) 12:26:30.14ID:C/WFYzI6a そう考えると世のプログラミング言語のベースが中国語だったら表意文字だしだいぶ可読性高そう
732デフォルトの名無しさん (ワッチョイ a5ea-7XMe)
2017/12/06(水) 12:52:19.56ID:okTVVyb50 その昔日本語BASICってあった
733デフォルトの名無しさん (ササクッテロル Spbd-UEA0)
2017/12/06(水) 13:38:02.28ID:VY+2C2cGp 日本語はむしろ同じ物を表す書き方が平仮名片仮名漢字と何通りもあるから面倒だろ。
734デフォルトの名無しさん (アウアウカー Sa55-m9bV)
2017/12/06(水) 14:11:49.30ID:UBdFOzE6a 表のように与えられた時各学年の人数と全校の人数をふ計算するプログラムを教えてください。
できれば今日中に。
1組 2組 3組 4組 5組
1年 33 35 34 32 36
2年 34 33 35 33 31
3年 31 32 36 30 35
できれば今日中に。
1組 2組 3組 4組 5組
1年 33 35 34 32 36
2年 34 33 35 33 31
3年 31 32 36 30 35
735デフォルトの名無しさん (ワッチョイ 5d8a-J59I)
2017/12/06(水) 17:00:52.31ID:WZX+cLKR0 入力させる文字の指定ってstrchrでOKです?
736片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd0a-umKW)
2017/12/06(水) 17:23:48.59ID:uR2+ZG62d 婦警さん?
737デフォルトの名無しさん (ワッチョイ 8a87-8ufQ)
2017/12/06(水) 17:35:06.56ID:dghGKPLV0 >>734
明日の朝、学校行く前に覗いてみ
明日の朝、学校行く前に覗いてみ
738デフォルトの名無しさん (ワッチョイ 3d93-kA4S)
2017/12/06(水) 17:36:10.79ID:mUQybk730 >>734 は学校の宿題か課題の代行をタダでやってくれ、みたいに見えるなぁ。
親切心で教えることが質問者のためになるか疑問ってこと。
元のデータはどういう形で与えられるのかな。
質問の内容から見て、学年数もクラス数も一定で
配列としてソースファイルに埋め込みで良さそうだけど。
学年数やクラス数まで実行時の入力によって可変、となると
かなり面倒な話になるね。
親切心で教えることが質問者のためになるか疑問ってこと。
元のデータはどういう形で与えられるのかな。
質問の内容から見て、学年数もクラス数も一定で
配列としてソースファイルに埋め込みで良さそうだけど。
学年数やクラス数まで実行時の入力によって可変、となると
かなり面倒な話になるね。
739デフォルトの名無しさん (ワッチョイ 8a87-8ufQ)
2017/12/06(水) 17:55:56.74ID:dghGKPLV0 安心して翌朝覗いてみたら何も上がってないという寸法さ
740デフォルトの名無しさん (スプッッ Sd0a-hmNI)
2017/12/06(水) 18:30:27.51ID:YX7yBjoZd execve関数を使うためにclearenv()で環境変数を初期化すると手順にあるのだけど
この関数の影響範囲をどう調べればわかるか調べ方もしくは影響範囲が知りたいです
manページを見ても名前と値の組の環境変数を〜みたいな話しかなくて困ってます
この関数の影響範囲をどう調べればわかるか調べ方もしくは影響範囲が知りたいです
manページを見ても名前と値の組の環境変数を〜みたいな話しかなくて困ってます
741デフォルトの名無しさん (ワッチョイ 599e-WpQb)
2017/12/06(水) 18:48:00.75ID:8+NPe2ry0 マージャンの符計算かな
742デフォルトの名無しさん (アウアウカー Sa55-iHXH)
2017/12/06(水) 20:41:52.15ID:5GqDQnIfa743デフォルトの名無しさん (アウアウカー Sa55-iHXH)
2017/12/06(水) 20:42:56.94ID:5GqDQnIfa >>735
君のやりたいことがよくわからない。
君のやりたいことがよくわからない。
744デフォルトの名無しさん (アウアウカー Sa55-iHXH)
2017/12/06(水) 20:50:51.97ID:5GqDQnIfa >>740
影響範囲?そりゃ環境変数使うプログラム全てだろう。特にPATH使うようなやつ(外部コマンドをフルパス使わずに動かす可能性のあるプログラム)は影響受けるよね。
その他、動かすコマンドによって影響は違うと思う。これから動かそうとしているコマンドがどういう環境変数を使うかに掛かっている。だからこうだと固定的に言うことができない。
影響範囲?そりゃ環境変数使うプログラム全てだろう。特にPATH使うようなやつ(外部コマンドをフルパス使わずに動かす可能性のあるプログラム)は影響受けるよね。
その他、動かすコマンドによって影響は違うと思う。これから動かそうとしているコマンドがどういう環境変数を使うかに掛かっている。だからこうだと固定的に言うことができない。
745デフォルトの名無しさん (スプッッ Sd6d-hmNI)
2017/12/06(水) 21:47:43.97ID:9SICms2Nd >>744
無知ですまんが
環境変数をクリアするってことは要はLD_LIBRARY_PATHに登録されてるものをすべて無にするってことなのだろうか
これは一時的なもの?それとも永続的なもの?
ここらを参考にsystem関数ではなくexecveを使う方針になったのだけど
むしろ改悪になってるんじゃないかとなってきている
https://www.jpcert.or.jp/sc-rules/c-env33-c.html
http://www.jpcert.or.jp/m/sc-rules/c-env03-c.html
下を読んでなんとなく何がリセットされるのかはわかってきたけども
それがどう影響を与えるのだろうかと
https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/c703.html
無知ですまんが
環境変数をクリアするってことは要はLD_LIBRARY_PATHに登録されてるものをすべて無にするってことなのだろうか
これは一時的なもの?それとも永続的なもの?
ここらを参考にsystem関数ではなくexecveを使う方針になったのだけど
むしろ改悪になってるんじゃないかとなってきている
https://www.jpcert.or.jp/sc-rules/c-env33-c.html
http://www.jpcert.or.jp/m/sc-rules/c-env03-c.html
下を読んでなんとなく何がリセットされるのかはわかってきたけども
それがどう影響を与えるのだろうかと
https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/c703.html
746デフォルトの名無しさん (スプッッ Sd6d-hmNI)
2017/12/06(水) 21:52:07.31ID:9SICms2Nd 下記のように書いてあるけども
むしろ影響範囲でか過ぎるんじゃねぇか?ってのが困ってるところ
確かに改竄とかの対策にはなるとは思うんだけど
リセットしてしまったことによって使えなくなるものについてはどう担保するのかがわからない
このクリアが呼び出した関数内だけなのか、呼び出したプロセスやスレッドだけなのか、呼び出したら再起動までずっとなのか、呼び出したら再起動しても以降ずっとなのかと
(2) 環境変数のクリア
外部プログラムをコールする(exec(3))前に、環境変数をすべてクリアするとより安全になる。環境変数をクリアするには、clearenv(3) をコールすればよい。
clearenv(3) が無い環境では、以下のように extern char **environ 変数を直接クリアする。
environ = NULL;
※上記の方法で環境変数をクリアしても、system (3) による子プロセスの環境変数は、クリアされず再設定されたものになる。
むしろ影響範囲でか過ぎるんじゃねぇか?ってのが困ってるところ
確かに改竄とかの対策にはなるとは思うんだけど
リセットしてしまったことによって使えなくなるものについてはどう担保するのかがわからない
このクリアが呼び出した関数内だけなのか、呼び出したプロセスやスレッドだけなのか、呼び出したら再起動までずっとなのか、呼び出したら再起動しても以降ずっとなのかと
(2) 環境変数のクリア
外部プログラムをコールする(exec(3))前に、環境変数をすべてクリアするとより安全になる。環境変数をクリアするには、clearenv(3) をコールすればよい。
clearenv(3) が無い環境では、以下のように extern char **environ 変数を直接クリアする。
environ = NULL;
※上記の方法で環境変数をクリアしても、system (3) による子プロセスの環境変数は、クリアされず再設定されたものになる。
747片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd0a-umKW)
2017/12/06(水) 22:02:02.99ID:uR2+ZG62d 婦警さんするなら、婦警の制服が必要。
748デフォルトの名無しさん (ワッチョイ 6d9f-nek4)
2017/12/06(水) 22:02:54.34ID:u7C0REjG0 >>745
一時的もなにもそれを実行したプロセスとそのプロセスからexecしたプロセスにしか影響しないよ。だからfork()後に子プロセスだけでやるなら親プロセスには影響しないしその他無関係なプロセスにも影響はない。
一時的もなにもそれを実行したプロセスとそのプロセスからexecしたプロセスにしか影響しないよ。だからfork()後に子プロセスだけでやるなら親プロセスには影響しないしその他無関係なプロセスにも影響はない。
749デフォルトの名無しさん (ワッチョイ 6d9f-nek4)
2017/12/06(水) 22:05:07.83ID:u7C0REjG0 >>745
環境変数はシステム全体で一箇所に持っているものではなくプロセス単位で持ってるものだからね。そしてexecの時に引き継ぐ事もできるようになってるだけ。
環境変数はシステム全体で一箇所に持っているものではなくプロセス単位で持ってるものだからね。そしてexecの時に引き継ぐ事もできるようになってるだけ。
750デフォルトの名無しさん (スプッッ Sd6d-hmNI)
2017/12/06(水) 22:31:14.96ID:9SICms2Nd751デフォルトの名無しさん (ワッチョイ 6d9f-HgL3)
2017/12/06(水) 23:56:33.03ID:QVT4XBLu0 >>750
環境変数は大昔から使われているものでどのOSでも多分同じだ。
まずはここを見ると良い。
https://ja.wikipedia.org/wiki/%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0
環境変数は大昔から使われているものでどのOSでも多分同じだ。
まずはここを見ると良い。
https://ja.wikipedia.org/wiki/%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0
752デフォルトの名無しさん (ワッチョイ 17d3-vw7f)
2017/12/07(木) 00:29:29.78ID:X12IxieF0 初心者です
時間取得の関数で待ち時間を作るの方法は使わずに、
現在の処理の完了した後、次の処理に移らせるにはどのようにすればいいんですか?
現在の処理が始まった瞬間に次の処理に移ってしまいます
現在の処理とは、マウスポインタの操作です
お願いします
時間取得の関数で待ち時間を作るの方法は使わずに、
現在の処理の完了した後、次の処理に移らせるにはどのようにすればいいんですか?
現在の処理が始まった瞬間に次の処理に移ってしまいます
現在の処理とは、マウスポインタの操作です
お願いします
753デフォルトの名無しさん (ワッチョイ d79f-qmOZ)
2017/12/07(木) 00:53:41.38ID:9lSPChPb0 >>752
おそらくそれだけの説明では大半の人が答えられないと思う。(エスパーを除く)
おそらくそれだけの説明では大半の人が答えられないと思う。(エスパーを除く)
754デフォルトの名無しさん (ワッチョイ 9f87-Nf6k)
2017/12/07(木) 01:27:41.37ID:07dplzZ20 マウスイベントの取得はOSの仕事
OSのAPIドキュメント見れ
OSのAPIドキュメント見れ
755デフォルトの名無しさん (スップ Sd3f-KxrP)
2017/12/07(木) 07:52:13.51ID:6ZyfpAbkd756デフォルトの名無しさん (ワッチョイ 5793-3gxb)
2017/12/07(木) 08:07:08.94ID:W1nCZ1Cb0 >>755
「概要」の第3段落冒頭かな。
「環境変数は、各プロセスに付随するデータである」
この1文から「プロセスごとに環境変数は独立」を読み解くのは
この手の文章に対する程度の慣れが要求されるかも。
「概要」の第3段落冒頭かな。
「環境変数は、各プロセスに付随するデータである」
この1文から「プロセスごとに環境変数は独立」を読み解くのは
この手の文章に対する程度の慣れが要求されるかも。
757756 (ワッチョイ 5793-3gxb)
2017/12/07(木) 08:28:21.42ID:W1nCZ1Cb0 最後の行は言うまでもなく「ある程度の慣れ」が正しい。
「ある」を打ち忘れたアル。
「ある」を打ち忘れたアル。
758デフォルトの名無しさん (スップ Sd3f-KxrP)
2017/12/07(木) 10:59:56.67ID:6ZyfpAbkd759デフォルトの名無しさん (ササクッテロル Sp8b-lv8k)
2017/12/07(木) 11:16:17.60ID:jWS70WF+p マトリックス・リローデッドみたいな話だな。
760デフォルトの名無しさん (ブーイモ MMbb-t4sk)
2017/12/07(木) 11:44:46.46ID:CZv4Zvq/M761デフォルトの名無しさん (スップ Sd3f-KxrP)
2017/12/07(木) 12:10:49.09ID:6ZyfpAbkd >>760
そいつというと親プロセスでしょうか子プロセスでしょうか
知りたいこととしてはwaitpidを親プロセスが処理を抜けるタイミングについてです
エラーを受けたら抜ける、正常に終了したら抜けるってのはわかったのですが、
これ以外にwaitを解くタイミングがないのかと
そいつというと親プロセスでしょうか子プロセスでしょうか
知りたいこととしてはwaitpidを親プロセスが処理を抜けるタイミングについてです
エラーを受けたら抜ける、正常に終了したら抜けるってのはわかったのですが、
これ以外にwaitを解くタイミングがないのかと
762デフォルトの名無しさん (ブーイモ MMcf-t4sk)
2017/12/07(木) 18:20:26.00ID:8aHRDFHpM >>761
waitpidの仕様を聞くんじゃなくて、何をしたいか書く方が早いよ
waitpidの仕様を聞くんじゃなくて、何をしたいか書く方が早いよ
763デフォルトの名無しさん (ワッチョイ 57b3-4bIM)
2017/12/07(木) 18:30:02.50ID:3Bgd1/LJ0 ゲスパーするとタイムアウト付で waitpid のブロッキングから帰ってきて欲しいんでないの?
764デフォルトの名無しさん (ブーイモ MMcf-t4sk)
2017/12/07(木) 20:44:53.40ID:8aHRDFHpM ブロックしないオプション知らないのかな
manまったく読めてねーな
manまったく読めてねーな
765デフォルトの名無しさん (ワッチョイ 1feb-F7Qh)
2017/12/08(金) 09:22:37.83ID:T81djMMQ0766デフォルトの名無しさん (ワッチョイ bfe7-IpD3)
2017/12/08(金) 10:17:23.50ID:/XUBF9/70 “Hello, Work”標準派遣のシゴトとしくみ
767デフォルトの名無しさん (アウアウカー Saeb-f0yR)
2017/12/08(金) 11:13:03.88ID:Zfsy2JHoa サイバーセールは他に買いたいものがいろいろあるからなあ
768デフォルトの名無しさん (ワッチョイ 17b3-LVSJ)
2017/12/09(土) 19:00:18.23ID:wLDySn0e0 乱数を使って異なる4つの数を作りたい
色々調べると a[10] = {0,1,2,〜,9};
を作って4つランダムに抜き出すとかも見つけたんだけどこれでも重複回避方法がわからん...
色々調べると a[10] = {0,1,2,〜,9};
を作って4つランダムに抜き出すとかも見つけたんだけどこれでも重複回避方法がわからん...
769デフォルトの名無しさん (ワンミングク MM7f-kRO6)
2017/12/09(土) 19:24:47.38ID:iPTGHqKhM770デフォルトの名無しさん (ワッチョイ bfb6-QZHg)
2017/12/09(土) 19:28:52.45ID:oe+MwYG+0 >>769
乱数を作りたいと言ってるわけじゃないわけでー
乱数を作りたいと言ってるわけじゃないわけでー
771片山博文MZ ◆T6xkBnTXz7B0 (ワッチョイ 17b3-n3/l)
2017/12/09(土) 19:31:17.31ID:nSkNRr7y0 n個の中から1つ選ぶ。
n-1個の中から1つ選ぶ。
n-2個の中から1つ選ぶ。
。。。
n-1個の中から1つ選ぶ。
n-2個の中から1つ選ぶ。
。。。
772片山博文MZ ◆T6xkBnTXz7B0 (ワッチョイ 17b3-n3/l)
2017/12/09(土) 19:31:57.38ID:nSkNRr7y0 選んだものには印を付ける。
773デフォルトの名無しさん (ワッチョイ 9f12-F7Qh)
2017/12/09(土) 19:36:25.25ID:nZ8OLT0i0 配列に連番で入れて
配列をシャッフルして
配列の先頭から4個抜きとる
お手元のトランプで試してみろよ
絶対に重複しないから
配列をシャッフルして
配列の先頭から4個抜きとる
お手元のトランプで試してみろよ
絶対に重複しないから
774デフォルトの名無しさん (ワッチョイ 17b3-0+aW)
2017/12/09(土) 19:38:14.85ID:f1LM7KYB0 とりあえず異なる4つの数を作りたいって言ったけど最終目標がHit&Blowだからマクロについて学んでくる
775デフォルトの名無しさん (ワッチョイ 17b3-0+aW)
2017/12/09(土) 19:39:02.99ID:f1LM7KYB0 あっスマホとPCでID変わるんだった
776デフォルトの名無しさん (ワッチョイ 17b3-0+aW)
2017/12/09(土) 19:40:07.11ID:f1LM7KYB0 配列をシャッフルか...なるほど...
777デフォルトの名無しさん (ワッチョイ 5793-3gxb)
2017/12/09(土) 19:59:49.27ID:0DJ42hmW0 配列をシャッフルするって方法は、カードゲームや麻雀の洗牌で使うよね。
文字通りシャッフル、一揃いの順番を混ぜ合わせる操作として。
連番で初期化した配列の、乱数で選んだ2つのインデクスの要素同士を入れ替え。
ある程度の回数ループさせると重複なく順番がバラバラになる。
他には、素朴な乱数ルーチンと組み合わせて乱数の質を改善する方法として
乱数プール(配列)の中から乱数で選んだ(インデクスの)値を出すってのを
見たことがある。
最近は高品質な生成アルゴリズムを使うのだろうけど。
文字通りシャッフル、一揃いの順番を混ぜ合わせる操作として。
連番で初期化した配列の、乱数で選んだ2つのインデクスの要素同士を入れ替え。
ある程度の回数ループさせると重複なく順番がバラバラになる。
他には、素朴な乱数ルーチンと組み合わせて乱数の質を改善する方法として
乱数プール(配列)の中から乱数で選んだ(インデクスの)値を出すってのを
見たことがある。
最近は高品質な生成アルゴリズムを使うのだろうけど。
778デフォルトの名無しさん (ワッチョイ ff80-8EI8)
2017/12/09(土) 20:34:35.00ID:zmyZSbxv0 「Fisher-Yates shuffle」で検索!
779デフォルトの名無しさん (ワッチョイ 578c-FlEo)
2017/12/09(土) 20:41:26.15ID:gdFl+nNB0 >>連番で初期化した配列の、乱数で選んだ2つのインデクスの要素同士を入れ替え。
>>ある程度の回数ループさせると重複なく順番がバラバラになる。
それは初心者にありがちな悪手。回数を増やすと見た目はランダムっぽく
なるけどあまりランダムにならない。
1枚目を全体からの一様乱数、2枚目を残りから一様乱数、・・・という具合に選ぶのがいい
>>ある程度の回数ループさせると重複なく順番がバラバラになる。
それは初心者にありがちな悪手。回数を増やすと見た目はランダムっぽく
なるけどあまりランダムにならない。
1枚目を全体からの一様乱数、2枚目を残りから一様乱数、・・・という具合に選ぶのがいい
780片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-n3/l)
2017/12/09(土) 21:03:49.72ID:uxECPca0d std::shuffle,
古いコンパイラならstd::random_shuffle
古いコンパイラならstd::random_shuffle
781デフォルトの名無しさん (ワッチョイ d79f-qmOZ)
2017/12/10(日) 06:04:19.96ID:J0bkBqjd0 それはC言語ではなかろう
782デフォルトの名無しさん (ワッチョイ bfe7-IpD3)
2017/12/10(日) 08:43:45.99ID:q697l8m20 リングバッファで選んでないものを探す。
783デフォルトの名無しさん (ワッチョイ 17b3-LVSJ)
2017/12/10(日) 11:45:02.06ID:jSvVl/bp0 昨日の768です
Fisher-Yates shuffle
が凄く役に立ちました。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void shuffle(int ary[], int size);
int main(void) {
int list[10] = { 0,1,2,3,4,5,6,7,8,9 };
shuffle(list, 10);
for (int i = 0; i < 10; i++) {
printf("%d,", list[i]);
}
return 0;
}
void shuffle(int ary[], int size) {
for (int i = 0; i < size; i++) {
int j = rand() % size;
int t = ary[i];
ary[i] = ary[j];
ary[j] = t;
}
}
Fisher-Yates shuffle
が凄く役に立ちました。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void shuffle(int ary[], int size);
int main(void) {
int list[10] = { 0,1,2,3,4,5,6,7,8,9 };
shuffle(list, 10);
for (int i = 0; i < 10; i++) {
printf("%d,", list[i]);
}
return 0;
}
void shuffle(int ary[], int size) {
for (int i = 0; i < size; i++) {
int j = rand() % size;
int t = ary[i];
ary[i] = ary[j];
ary[j] = t;
}
}
784デフォルトの名無しさん (ワッチョイ 17b3-LVSJ)
2017/12/10(日) 11:47:09.13ID:jSvVl/bp0 これだと10桁表示されてしまうので、4桁分表示するように変更
色々有り難うございました
HitとBlowの処理行ってきます
色々有り難うございました
HitとBlowの処理行ってきます
785デフォルトの名無しさん (アウアウカー Saeb-I8sf)
2017/12/10(日) 18:48:03.62ID:xLxKGjo5a 4桁なら乱数4つ求めた後で重複調べてあったらまた求めるっての繰り返しても良いんじゃないか?
786デフォルトの名無しさん (ワッチョイ ff80-8EI8)
2017/12/11(月) 06:21:58.84ID:4q7JrCp00 arySize = 10
range = 0...arySize # 未満
ary = range.to_a
def shuffle(ary, size, range)
for i in range
j = Random.rand(size)
puts "i=#{i} ← j=#{j} : value #{ary[i]} ← #{ary[j]}"
ary[i], ary[j] = ary[j], ary[i]
end
end
shuffle(ary, arySize, range)
p ary
i=0 ← j=8 : value 0 ← 8
i=1 ← j=9 : value 1 ← 9
i=2 ← j=2 : value 2 ← 2
i=3 ← j=9 : value 3 ← 1
i=4 ← j=7 : value 4 ← 7
i=5 ← j=5 : value 5 ← 5
i=6 ← j=4 : value 6 ← 7
i=7 ← j=8 : value 4 ← 0
i=8 ← j=7 : value 4 ← 0
i=9 ← j=9 : value 3 ← 3
[8, 9, 2, 1, 6, 5, 7, 4, 0, 3]
>j = Random.rand(size)
Ruby で書いたけど、これだと、0〜9 のまま一定だろ。
Fisher-Yates shuffle では、ループの度に、1ずつ減らさないといけないよな?
range = 0...arySize # 未満
ary = range.to_a
def shuffle(ary, size, range)
for i in range
j = Random.rand(size)
puts "i=#{i} ← j=#{j} : value #{ary[i]} ← #{ary[j]}"
ary[i], ary[j] = ary[j], ary[i]
end
end
shuffle(ary, arySize, range)
p ary
i=0 ← j=8 : value 0 ← 8
i=1 ← j=9 : value 1 ← 9
i=2 ← j=2 : value 2 ← 2
i=3 ← j=9 : value 3 ← 1
i=4 ← j=7 : value 4 ← 7
i=5 ← j=5 : value 5 ← 5
i=6 ← j=4 : value 6 ← 7
i=7 ← j=8 : value 4 ← 0
i=8 ← j=7 : value 4 ← 0
i=9 ← j=9 : value 3 ← 3
[8, 9, 2, 1, 6, 5, 7, 4, 0, 3]
>j = Random.rand(size)
Ruby で書いたけど、これだと、0〜9 のまま一定だろ。
Fisher-Yates shuffle では、ループの度に、1ずつ減らさないといけないよな?
787デフォルトの名無しさん (ワッチョイ 5793-3gxb)
2017/12/11(月) 06:51:09.15ID:IqtrAjQN0788デフォルトの名無しさん (ササクッテロル Sp8b-lv8k)
2017/12/11(月) 10:36:52.32ID:jt1Lo1hEp 最初から全部の組み合わせの分のテーブル作っておいて、
そいつを乱数で選ばせりゃ一発で決まりだろ?
そいつを乱数で選ばせりゃ一発で決まりだろ?
789デフォルトの名無しさん (ブーイモ MMbb-t4sk)
2017/12/11(月) 11:17:47.55ID:lUrRZ9vjM 何個いるんですかね?
790デフォルトの名無しさん (ササクッテロル Sp8b-lv8k)
2017/12/11(月) 11:43:53.98ID:jt1Lo1hEp いまどきハードディスクなんかテラバイト単位でデータ持てるじゃん。
792デフォルトの名無しさん (アウアウカー Saeb-I8sf)
2017/12/11(月) 12:51:29.67ID:h/GY+Pada793デフォルトの名無しさん (ドコグロ MMdf-5lVI)
2017/12/11(月) 13:06:03.85ID:roDNP16DM それするなら、0〜9999の乱数を求めて各桁を使えばいい
配列を作る必要はない
配列を作る必要はない
794デフォルトの名無しさん (ドコグロ MMdf-5lVI)
2017/12/11(月) 13:07:55.26ID:roDNP16DM 違った。重複しちゃだめだった
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【熊本】園児に強制性交か 保育所勤務の男を逮捕「性的な欲望が我慢できなかった」警察は余罪を調べる [七波羅探題★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 【前橋市】小川晶前市長とラブホテルで打ち合わせをした54歳男性職員を停職処分 今月末で依願退職するという [シャチ★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」★3 [ぐれ★]
- 【サッカー】元日本代表DF冨安がオランダ1部アヤックスと大筋合意か 現地メディア報じる [久太郎★]
- 中国の日本向けレアアースの輸出止まる、高市のせいで日本終了のお知らせ [931948549]
- 高市早苗「竹島は日本領土」 [834922174]
- あくたんのおまんこって甘そうだよな🤤
- ヨドバシ店員「転売対策です。エヴァに出てくるロボットの名前をどれかひとつ言ってください」 [268718286]
- 【悲報】欧州、トランプ関税の前例に従い対中規制として関税を検討、中国さん四面楚歌へ [733893279]
- 🏡
