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/
前
http://mevius.5ch.net/test/read.cgi/tech/1509107288/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
C言語なら俺に聞け 144
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 838a-3nWA)
2017/12/23(土) 19:33:43.89ID:dghfoRy202デフォルトの名無しさん (ワッチョイ 639f-buzn)
2017/12/23(土) 22:25:14.39ID:BUr3nOOf0 #include <stdio.h>
int main(int argc, char *argv[])
{
unsigned long long n[] = { 0x0820084008411c3e, 0x087f180408080810 };
int i;
for (i = 127; i >= 0; i--) {
putchar(n[i / 64] & (1ULL << (i % 64)) ? '*' : ' ');
if (! (i & 0x0f)) putchar('\n');
}
return 0;
}
https://paiza.io/projects/zyQ0Osccs4xaziOrVUF_cA
int main(int argc, char *argv[])
{
unsigned long long n[] = { 0x0820084008411c3e, 0x087f180408080810 };
int i;
for (i = 127; i >= 0; i--) {
putchar(n[i / 64] & (1ULL << (i % 64)) ? '*' : ' ');
if (! (i & 0x0f)) putchar('\n');
}
return 0;
}
https://paiza.io/projects/zyQ0Osccs4xaziOrVUF_cA
乱数生成法について教えてください。
普通の乱数生成法は、ある乱数 x を発生させたとき、次の乱数を特定の関数 f で生成させていますが、
(すなわち、次の乱数は f(x) となる)、これは n + 1 番目の乱数を作るには、n 番目の乱数を知らなければならないことになります。
そうではなくて、n + 1 番目の乱数を f(n + 1) で計算できるもの( n + 1 番目の乱数を求めるのに n 番目の乱数を知らなくてもいいもの)はないでしょうか?
こういう乱数はテクニカルタームとしてはどのように呼ばれるのでしょうか?
普通の乱数生成法は、ある乱数 x を発生させたとき、次の乱数を特定の関数 f で生成させていますが、
(すなわち、次の乱数は f(x) となる)、これは n + 1 番目の乱数を作るには、n 番目の乱数を知らなければならないことになります。
そうではなくて、n + 1 番目の乱数を f(n + 1) で計算できるもの( n + 1 番目の乱数を求めるのに n 番目の乱数を知らなくてもいいもの)はないでしょうか?
こういう乱数はテクニカルタームとしてはどのように呼ばれるのでしょうか?
4デフォルトの名無しさん (ワッチョイ ffe3-bqMz)
2017/12/24(日) 02:41:31.08ID:rYvbui2B0 >>3
擬似乱数のことでいいんだよね?
今普通って言ったらメルセンヌツイスターだと思うんだけど、
「次の乱数は f(x)」 とか「f(n + 1) で計算」とかしないよ
数千bitほどの内部状態から数列を生み出すんだよ
じゃないと周期とか質が悪い
擬似乱数のことでいいんだよね?
今普通って言ったらメルセンヌツイスターだと思うんだけど、
「次の乱数は f(x)」 とか「f(n + 1) で計算」とかしないよ
数千bitほどの内部状態から数列を生み出すんだよ
じゃないと周期とか質が悪い
5デフォルトの名無しさん (ワッチョイ f32d-KysX)
2017/12/24(日) 03:04:56.70ID:NhYt16sn0 f(n + 1) で計算できるものって それはもはやHashではないかな
6デフォルトの名無しさん (ワッチョイ ff12-7LW1)
2017/12/24(日) 09:27:22.23ID:ZACWf2Ud0 適当に名づけるなら帰納的乱数とかになる
7デフォルトの名無しさん (ワッチョイ 13f2-7LW1)
2017/12/24(日) 09:52:22.24ID:RXtl733r0 >(すなわち、次の乱数は f(x) となる)、これは n + 1 番目の乱数を作るには、n 番目の乱数を知らなければならないことになります。
それランダムにならんように思うが。
それランダムにならんように思うが。
8デフォルトの名無しさん (ワッチョイ bf96-0jjC)
2017/12/24(日) 10:37:54.51ID:hPGGl0Vf0 神はサイコロを振らない
9デフォルトの名無しさん (ワッチョイ 23b3-4EoF)
2017/12/24(日) 12:15:24.33ID:k/FD7rQX0 そうなんだおじさん「そうなんだ」
10デフォルトの名無しさん (ワッチョイ 9355-9w0B)
2017/12/24(日) 13:04:44.76ID:88m+Wv2j011デフォルトの名無しさん (ワッチョイ 639f-buzn)
2017/12/24(日) 13:57:11.07ID:7ASFTRv40 >>3
普通の計算機である以上何かを元にして計算するしかないのでは?
f(n+1) を計算する時に f(n) を使わずに n を元にして計算する?
だったら乱数計算する前に必ずシードをセットするようにするしかないのではないか?
例えば rand() の直前に必ず srand() で種をセットするということね。
(実際これやると乱数にならないような気がするが)
普通の計算機である以上何かを元にして計算するしかないのでは?
f(n+1) を計算する時に f(n) を使わずに n を元にして計算する?
だったら乱数計算する前に必ずシードをセットするようにするしかないのではないか?
例えば rand() の直前に必ず srand() で種をセットするということね。
(実際これやると乱数にならないような気がするが)
12デフォルトの名無しさん (ワッチョイ ffe3-bqMz)
2017/12/24(日) 16:54:26.09ID:rYvbui2B013デフォルトの名無しさん (ブーイモ MMff-9w0B)
2017/12/24(日) 17:37:32.76ID:FUOJ/cJEM >>12
メルセンヌツイスタは乱数列を無限に出力できるのでn番目とかはないという話ですか?
メルセンヌツイスタは乱数列を無限に出力できるのでn番目とかはないという話ですか?
14デフォルトの名無しさん (ワッチョイ 2393-YNiV)
2017/12/24(日) 17:37:51.83ID:DT7VHm750 >>3 の質問の真意は
「(擬似)乱数列のn+1番目の値を出すためにn+1回のループを回す必要がない
アルゴリズムを紹介してくれ」だと思うよ。
n+1番目の乱数値を作るためにn番目までの乱数値を知る(次の値の計算に使う)
必要がある、という意味ではないでしょ。
「(擬似)乱数列のn+1番目の値を出すためにn+1回のループを回す必要がない
アルゴリズムを紹介してくれ」だと思うよ。
n+1番目の乱数値を作るためにn番目までの乱数値を知る(次の値の計算に使う)
必要がある、という意味ではないでしょ。
1514 (ワッチョイ 2393-YNiV)
2017/12/24(日) 17:43:11.44ID:DT7VHm750 おっと、「〜だと思うよ」の部分は「〜じゃないかな?」に訂正させてくれ。
読み直したら、そこまで断定する自信がなくなった。
質問者 >>3 による見解を求む。
…と言っても、いずれにせよ俺には答えられない問題だけどネ。
読み直したら、そこまで断定する自信がなくなった。
質問者 >>3 による見解を求む。
…と言っても、いずれにせよ俺には答えられない問題だけどネ。
16デフォルトの名無しさん (ワッチョイ 03c6-MZER)
2017/12/24(日) 17:57:57.47ID:KMicyDdr0 Gtk+ 3.0のGUIツールの質問はこちらでも宜しいでしょうか。
glade3.18、C言語を使用しています。
起動したgladeの右側のプロパティ画面で、
window1 GtkWindow
□|__box1 GtkBox
□□|__scrolledwindow1 GtkScrolledWindow
□□□|__viewport1 GtkViewport
□□□|____image2 GtkImage
□□□|__button1 GtkButton
のように配置すると、画面をマウスで引き伸ばしても、実行時window1のみが引き伸ばされてしまいます。
やろうとしている事は、ファイルの保存ダイアログの様に、マウスで引き伸ばしてもbutton1がwindow1と一緒に移動し、image2が引き伸ばしされている様に見せたいのですが上手くいきません。
教えてください。よろしくお願いします。
glade3.18、C言語を使用しています。
起動したgladeの右側のプロパティ画面で、
window1 GtkWindow
□|__box1 GtkBox
□□|__scrolledwindow1 GtkScrolledWindow
□□□|__viewport1 GtkViewport
□□□|____image2 GtkImage
□□□|__button1 GtkButton
のように配置すると、画面をマウスで引き伸ばしても、実行時window1のみが引き伸ばされてしまいます。
やろうとしている事は、ファイルの保存ダイアログの様に、マウスで引き伸ばしてもbutton1がwindow1と一緒に移動し、image2が引き伸ばしされている様に見せたいのですが上手くいきません。
教えてください。よろしくお願いします。
17デフォルトの名無しさん (ワッチョイ ffe3-bqMz)
2017/12/24(日) 18:24:06.76ID:rYvbui2B0 >>14
はい、そのとおりです。
ハッシュ関数(たとえばSHA-2) に対して入力0, 1, 2, を与えて得られた出力を乱数として使用することに妥当性はあるか?
もっと踏み込むと、実はストリーム暗号として使用したく考えています。
ハッシュ関数を h(x)、
暗号鍵を k
平文を M
暗号文をC
として、
C = Mi xor f(n + k), n = 0, 1, 2, ....
とした場合に、この暗号に対してどのような解読方法が考えられるか?
はい、そのとおりです。
ハッシュ関数(たとえばSHA-2) に対して入力0, 1, 2, を与えて得られた出力を乱数として使用することに妥当性はあるか?
もっと踏み込むと、実はストリーム暗号として使用したく考えています。
ハッシュ関数を h(x)、
暗号鍵を k
平文を M
暗号文をC
として、
C = Mi xor f(n + k), n = 0, 1, 2, ....
とした場合に、この暗号に対してどのような解読方法が考えられるか?
20片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd1f-1u/G)
2017/12/24(日) 19:24:00.18ID:gjaYlpPed >>16
「引き延ばし」というのは専門用語じゃないよね。位置とサイズをちゃんと指定くれないと、人間にもわからないよ。
イベント駆動については勉強した? サイズを自動調整するには、イベント駆動で「サイズ変更」のイベントを捕まえるか、自動レイアウトにするしかないよ。
「引き延ばし」というのは専門用語じゃないよね。位置とサイズをちゃんと指定くれないと、人間にもわからないよ。
イベント駆動については勉強した? サイズを自動調整するには、イベント駆動で「サイズ変更」のイベントを捕まえるか、自動レイアウトにするしかないよ。
21片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd1f-1u/G)
2017/12/24(日) 19:39:28.76ID:gjaYlpPed >>16
コンテナを使えばサイズが調整できるよ。
コンテナを使えばサイズが調整できるよ。
22デフォルトの名無しさん (ワッチョイ 2393-YNiV)
2017/12/24(日) 19:46:51.17ID:DT7VHm75023片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd1f-1u/G)
2017/12/24(日) 19:48:23.88ID:gjaYlpPed GtkBoxとGtkScrolledWindowをコンテナに。イベント駆動でサイズ調整。
24片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd1f-1u/G)
2017/12/24(日) 19:54:08.92ID:gjaYlpPed 認識しています...
25片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd1f-1u/G)
2017/12/24(日) 20:14:50.51ID:gjaYlpPed 電池切れです。今すぐ充電して下さい。
>>22
その変形は、ちょっと楽観しすぎていると思う
f(1) = af(x) + b
f(2) = a(ax + b) + b = a^2 x + ab + b
f(3) = a(a(ax + b) + b) + b = a^3 x + a^2 b + ab + b
f(4) = a^4x + b(a^3 + a^2 + a + 1)
f(5) = a^5x + b(a^4 + a^3 + a^2 + a + 1)
なんかもっときれいになりそうだけれども…
>普段は
え?それはそうみえるだけじゃないでしょうか?
その変形は、ちょっと楽観しすぎていると思う
f(1) = af(x) + b
f(2) = a(ax + b) + b = a^2 x + ab + b
f(3) = a(a(ax + b) + b) + b = a^3 x + a^2 b + ab + b
f(4) = a^4x + b(a^3 + a^2 + a + 1)
f(5) = a^5x + b(a^4 + a^3 + a^2 + a + 1)
なんかもっときれいになりそうだけれども…
>普段は
え?それはそうみえるだけじゃないでしょうか?
2722 (ワッチョイ 2393-YNiV)
2017/12/25(月) 06:33:17.53ID:kqgEt8jU028デフォルトの名無しさん (ワッチョイ 6fe7-615/)
2017/12/25(月) 08:57:25.44ID:tHA+l6fr0 割り算を割り算なしで実用的に計算する方法はありますか?
29デフォルトの名無しさん (ワッチョイ f361-bqMz)
2017/12/25(月) 09:02:10.05ID:EqnSjGj20 筆算の手順を参考に。
30デフォルトの名無しさん (ブーイモ MM67-nFIV)
2017/12/25(月) 09:54:22.59ID:8JScrlTJM31デフォルトの名無しさん (ワッチョイ cf3f-tRgI)
2017/12/25(月) 11:53:59.36ID:9U/P4ALl0 整数を2の自然数乗で割るのは右シフト演算に置き換えられる
32デフォルトの名無しさん (ササクッテロレ Sp87-D16t)
2017/12/25(月) 11:59:50.75ID:73LxKXJcp >>31
そんな些末な化石テクニックなんか、最適化に任せちまえよ。
そんな些末な化石テクニックなんか、最適化に任せちまえよ。
33デフォルトの名無しさん (スッップ Sd1f-OpNk)
2017/12/25(月) 12:19:46.91ID:rFWBa6Kid 自身をXORするとゼロクリアできる。
34デフォルトの名無しさん (アウアウカー Sac7-vdkM)
2017/12/25(月) 12:46:35.23ID:Lg9qxqUaa >>33
いや、そうだけど、ゼロの代入しても最適化されてマシン語ではそれになってることあると思うよ。CPUにもよるだろうけどね。
レジスタをゼロクリアする専用の命令があればそちらが使われるだろうし、多分その方が何も計算しない分だけ速い。
いや、そうだけど、ゼロの代入しても最適化されてマシン語ではそれになってることあると思うよ。CPUにもよるだろうけどね。
レジスタをゼロクリアする専用の命令があればそちらが使われるだろうし、多分その方が何も計算しない分だけ速い。
35デフォルトの名無しさん (ブーイモ MM27-nFIV)
2017/12/25(月) 13:19:39.85ID:CsuxTCcbM 化石テクニックの一例で出しただけでしょ
36デフォルトの名無しさん (ワッチョイ cf8a-tCZy)
2017/12/25(月) 13:25:33.64ID:yJ1YqK0V0 XORクリアはZ80ではほぼ必須テクニックだったけど、x86では意味ないよ
37デフォルトの名無しさん (アウアウカー Sac7-vdkM)
2017/12/25(月) 13:37:06.87ID:Lg9qxqUaa >>35
今時のC言語だと意味がないばかりかコンパイラの最適化の邪魔になりかねないので変な小技は忘れた方が良いと思うよ。registerとかと同じ。
今時のC言語だと意味がないばかりかコンパイラの最適化の邪魔になりかねないので変な小技は忘れた方が良いと思うよ。registerとかと同じ。
38デフォルトの名無しさん (ブーイモ MM27-nFIV)
2017/12/25(月) 14:12:39.78ID:CsuxTCcbM 俺が出したんじゃねーし
39デフォルトの名無しさん (ワッチョイ f38a-IlPN)
2017/12/25(月) 14:39:28.15ID:eNXAkvu40 >>36
sub でクリアは定番
sub でクリアは定番
40デフォルトの名無しさん (ワッチョイ 03c6-MZER)
2017/12/25(月) 18:27:45.55ID:+TGgWy910 G_MODULE_EXPORT void
cb_activate(
GtkEntry *entry1,
GtkLabel *label1)
{
gchar *buf;
buf = g_strdup_printf("文字 %s",gtk_entry_get_text(entry1));
gtk_label_set_text(label1,buf);
g_free(buf);
}
上のプログラムを参考に、GtkTextViewから文字数を得て、label1に書き込むプログラムにしようと、マニュアルを調べていたのですが、上手くいきませんでした。
insert_at_cursorのイベントから動くようにするには、どうしたらいいのでしょうか。
初歩的な質問ですみません。よろしくお願いします。
cb_activate(
GtkEntry *entry1,
GtkLabel *label1)
{
gchar *buf;
buf = g_strdup_printf("文字 %s",gtk_entry_get_text(entry1));
gtk_label_set_text(label1,buf);
g_free(buf);
}
上のプログラムを参考に、GtkTextViewから文字数を得て、label1に書き込むプログラムにしようと、マニュアルを調べていたのですが、上手くいきませんでした。
insert_at_cursorのイベントから動くようにするには、どうしたらいいのでしょうか。
初歩的な質問ですみません。よろしくお願いします。
41デフォルトの名無しさん (ワッチョイ 7f60-IIk+)
2017/12/25(月) 18:52:27.54ID:LEWwY/wL0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 台湾有事での集団的自衛権行使に賛成48%、「反対」が44.2% [♪♪♪★]
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★12 [BFU★]
- 台湾有事での集団的自衛権行使に賛成48%、「反対」が44.2% ★2 [♪♪♪★]
- 中国・国連大使「日本側は反省せず、発言の撤回拒否」 書簡を国連事務総長に送る [♪♪♪★]
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★13 [BFU★]
- 首相官邸前で「戦争あおるな」 台湾有事巡る答弁に抗議 ★3 [蚤の市★]
- 他サポ 2025-260
- 2025 SUPER FORMULA Lap18
- 【フジテレビ】2025 FORMULA 1【NEXT】Lap600
- 【DAZN】フォーミュラGP【F1 2 3 SF P】Lap1807
- 京都競馬4回5日目エリザベス女王杯★3
- 福島競馬3回5日目
- 日本人の73%「中国が嫌い」日本の右傾化止まらない [165981677]
- 高市早苗「外交交渉でマウント取れる服、無理をしてでも買わなくてはいかんかもなぁ。」ネトウヨ向けにアピールwwwwwwwwwww [834922174]
- 俺、今年24歳になるのに兄弟が出来そう
- 【実況】博衣こよりのえちえちゼルダの伝説 ムジュラの仮面🧪 ★4
- 小野田大臣「それ正式なデータですか?報道ベースですよね」(10万いいね) [237216734]
- 日本人の48%覚悟完了… [819729701]
