C言語なら俺に聞け 143

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ b375-rVGZ)
垢版 |
2017/10/27(金) 21:28:08.20ID:pAogLeJi0
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
2017/10/28(土) 16:21:22.21ID:U1K93bKt0
>>16
ワープに成功しましたってメッセージが出る
2017/10/28(土) 16:29:25.72ID:MyIroYJQ0
>>16
0番地の住人に怒られる
2017/10/28(土) 16:50:59.06ID:IMJtHdwY0
ぬるぽ
2017/10/28(土) 17:33:04.44ID:VIxhg0oq0
>>8
「リテラルの数値256での剰余だから結果の範囲は0-255、
unsigned char の範囲からはみ出す可能性はない」
ということまでコンパイラが見抜いてくれないってことだよね。

data8 = (unsigined char) data32;

てな具合に明示的なキャストで上手くいかんかな。
あるいはコンパイラの最適化オプションを強めにするか。
21デフォルトの名無しさん (ワッチョイ 21d2-Eec1)
垢版 |
2017/10/28(土) 17:42:28.64ID:NBGUhvqo0
ちょっと勘違いしてました
>>8の質問はとりさげます
ちなみに%256の推論はしているみたいです
2017/10/28(土) 18:42:28.70ID:STqPADGQ0
リファクタリングして短いコード吐くかなと思ったら
がんがんループ展開されて元より長いコードを出すこともあるよね
23デフォルトの名無しさん (ワッチョイ 6b15-OCcV)
垢版 |
2017/10/28(土) 18:54:14.85ID:QoaQu2To0
希望的観測でタカをくくって結果を見もしないやつが一番悪い
2017/10/28(土) 20:47:38.03ID:VLfN62TLH
>>16
現代のマルチタスクOSではアドレスをずらしたりして0番地付近は見えなくされる




じゃなかったかな
2017/10/28(土) 20:49:51.90ID:i6LcJWfh0
物理0と論理0が違うってのなら、仮想記憶なOSなら
普通そうだよ
2017/10/28(土) 20:54:20.70ID:uE8IWkSS0
>>16
ヌルポインタに関しては、なんかややこしい事情があるみたいね。
規格ではいかなるオブジェクトとも一致しない特殊なポインタってことになってるようだけど、
自分が使ってる組込み用のコンパイラではただの 0 になる。しかも0番地から普通の RAM なんで、
値も普通に格納される。
どうなるかは確認するしかないんじゃなかろうか。
27デフォルトの名無しさん (ワッチョイ 9150-FcU6)
垢版 |
2017/10/28(土) 21:07:29.96ID:gfV3l07s0
>>20
32bitの範囲の数値を8bitの最大値で割るんだから
最大24bitの数値になるんじゃないの?
data8 = *(unsigined char*) &data32;
リトルエンディアンだと仮定するとこうなると思う
28デフォルトの名無しさん (ワッチョイ 9150-FcU6)
垢版 |
2017/10/28(土) 21:24:13.85ID:gfV3l07s0
すみません
剰余を除算と勘違いしていました
無視してください
29デフォルトの名無しさん (ワッチョイ 719f-WLyz)
垢版 |
2017/10/28(土) 23:08:15.00ID:cK0+9veY0
>>16
あるけど今時のだいたいのOSではアクセスすると例外発生してプログラムが停止させられると思う。
そうでなくてもCPUによってアドレス0付近が特別扱いされている事が多いのでアクセスできたとしても要注意だったりする。
なのでそういうのが必要な時というのはOSそのものやデバイスドライバを作る時ぐらいしかないと考えて良い。
30デフォルトの名無しさん (ワッチョイ 1be7-DNJs)
垢版 |
2017/10/28(土) 23:16:46.23ID:DjUYz3cS0
最近ヤフー知恵袋で初心者なんですけど将来プログラマになりたくてC言語やってみたいんですけどどうですかって
質問が多いがプログラマが時代の流行になってきたか?
31デフォルトの名無しさん (ワッチョイ d18a-bYcA)
垢版 |
2017/10/28(土) 23:27:04.65ID:6bG+Py6x0
>>30
とりあえずみんなc言語やるんだな
32デフォルトの名無しさん (ワッチョイ 1be7-DNJs)
垢版 |
2017/10/28(土) 23:47:39.21ID:DjUYz3cS0
>>31
おすすめの本やらおすすめの開発アプリやらおすすめのサイトやら学校のカリキュラムの評価やら色んな質問が多いしC言語やるならC#やった方が良いと思うんだけどなstring型ないだけで文字列処理とか大変だし不規則な空白・カンマ区切りとかの処理大変だし
そうゆうのを除外してくれる関数あるから楽なのになC言語はchar型で文字列操作してから処理しないとint型にしたりするのが大変だからな
2017/10/29(日) 00:35:52.85ID:CCoHsvZa0
義務教育のカリキュラムなもんで実用性の1側面に問題の作り易さもある
ペーパーテストにはうってつけだろC言語は
2017/10/29(日) 06:18:21.91ID:7nxu6Zdr0
教育だと一般性ってのも考えなきゃならないからね。
次々出てくる「Cを改良したネット時代の言語」とかの新しいやつも
10年たったら別の新言語と置き換わってるかも知れないし。
その点、Cなら古くさくても基本として残ってるだろう。

資格試験はまた別だがね。時々変えないと商売にならん。
35デフォルトの名無しさん (JP 0Hc5-xXVv)
垢版 |
2017/10/29(日) 10:11:30.74ID:NWVP0NdTH
Cは一人でやるとちょっとしたミスで手も足も出なくなるから論外
右も左も分からない初心者に基本はC言語とか言い出すヤツは老害
2017/10/29(日) 10:24:35.50ID:S9avFBtQ0
package test;

class Test
{
  public static void main(String[] args)
  {
    System.out.println("test");
  }
}
2017/10/29(日) 10:27:47.96ID:tz+cuQEW0
組込やOS開発まで視野に入れるとCが一つの王道なのは間違いない
初学者にすすめるべきかと聞かれるとそれはまた別の話
2017/10/29(日) 12:49:29.42ID:DRVQfTKK0
>>35
それはお前が無能てだけだろw Cなんて仕様がコンパクトだから簡単だわ
2017/10/29(日) 13:08:01.23ID:48yStxT20
実際に使うには多くの仕様外な環境依存のことを理解しないといけないから
C言語を勉強してもC言語は使えない
2017/10/29(日) 13:12:59.45ID:oFRxn/Jf0
しようがないな
2017/10/29(日) 13:24:51.26ID:DRVQfTKK0
アホか。それは言語の話じゃねーだろ
42デフォルトの名無しさん (ワッチョイ 719f-Akqv)
垢版 |
2017/10/29(日) 13:36:30.43ID:oFRxn/Jf0
環境依存の部分はどんな言語でも影響受けるから結局は覚える事になるんじゃないのかな
43デフォルトの名無しさん (ワッチョイ e1c3-bYcA)
垢版 |
2017/10/29(日) 16:45:37.57ID:Qj29lsVR0
まずはcでゲーム作ってみようかな
44デフォルトの名無しさん (ワッチョイ 1be7-DNJs)
垢版 |
2017/10/29(日) 17:07:01.40ID:eJZsCyOV0
win32で作ってみる?
45デフォルトの名無しさん (ワッチョイ 7116-rVGZ)
垢版 |
2017/10/29(日) 17:13:50.83ID:X7Kr9qJt0
OpenGLの方がいい
2017/10/29(日) 17:17:11.04ID:TdUzVMA70
まずコンソールアプリで
47デフォルトの名無しさん (ワッチョイ 1be7-DNJs)
垢版 |
2017/10/29(日) 22:58:38.22ID:eJZsCyOV0
その前に開発環境を整えるのが大変だわプログラミングはできるけどそれぞれ出してる開発アプリがあるしその中で開発ツールだっけXNAやらwin32やらで解らんことばっかりや
48デフォルトの名無しさん (ワッチョイ d18a-bYcA)
垢版 |
2017/10/29(日) 23:13:28.81ID:cx6N475a0
>>47
ほんそれ
2017/10/29(日) 23:38:03.44ID:tz+cuQEW0
大抵「C言語は何でも出来る」(嘘ではない)
に騙されるパターンだね
2017/10/29(日) 23:48:24.03ID:XyYI0EpP0
ビットローテイトってどう書くんですかね
51デフォルトの名無しさん (ワッチョイ f1ca-OCcV)
垢版 |
2017/10/30(月) 01:28:40.64ID:ObFQilr40
キャリーを含む9bitローテートか
それとも含まない8bitローテートか
2017/10/30(月) 02:41:46.16ID:z+u7+Cu/0
ボローがある奴で
2017/10/30(月) 04:58:13.48ID:oEYvBlvb0
性能優先ならインラインアセンブリでCPUのローテート命令かねぇ。
移植性が大事なら正直にマスクしてシフトしてビットorで重ねる。

8bitや16bitならテーブル使えば両立できるかな。
2017/10/30(月) 13:11:03.28ID:Oa6tPdXR0
苦C勉強してるんだけどファイルの辺りって重要?
あんま考えずにやってたんだが
55デフォルトの名無しさん (ササクッテロラ Sp9d-jmG0)
垢版 |
2017/10/30(月) 13:22:56.64ID:LaVtZ0d2p
ストリームの概念はUNIX譲りの万能概念だから未来永劫絡んで来るぞ。
56デフォルトの名無しさん (アウーイモ MM95-bYcA)
垢版 |
2017/10/30(月) 13:37:21.46ID:/ejdYHINM
fopen
fclose
2017/10/30(月) 14:12:51.37ID:z+u7+Cu/0
fdopen / fileno を理解すれば大体は困らないかと
58デフォルトの名無しさん (ササクッテロラ Sp9d-jmG0)
垢版 |
2017/10/30(月) 17:55:35.83ID:LaVtZ0d2p
read/writeが無いと意味が無いだろ。
2017/10/30(月) 18:00:53.98ID:YGvWSIyjr
初心者です。
4ビット目以降に文字(ASCII3文字)が格納されてる場合、どうやって取ればいいですか?
60デフォルトの名無しさん (ガックシ 068b-rVGZ)
垢版 |
2017/10/30(月) 18:06:29.16ID:6LR7RaNa6
char c1=data&0b000000000000000011111111000;
char c2=data%&0b000000001111111100000000000;
char c1=data%&0b111111110000000000000000000;
61デフォルトの名無しさん (ガックシ 068b-rVGZ)
垢版 |
2017/10/30(月) 18:07:40.57ID:6LR7RaNa6
char1重複エラー
62デフォルトの名無しさん (ガックシ 068b-rVGZ)
垢版 |
2017/10/30(月) 18:09:07.45ID:6LR7RaNa6
演算子オペランドエラー
2017/10/30(月) 18:14:50.15ID:ki8heFlTa
ファイルとストリームを結びつけるのって、具体的に何がどうなってるんですか?
その辺りがわかるサイトや書籍があれば英語でもいいので教えていただけるとありがたいです
2017/10/30(月) 18:16:13.85ID:ct0tj9Za0
long n = 12345678;
n >>= 4;
putchar(n & 0xFF);
n >>= 4;
putchar(n & 0xFF);
n >>= 4;
putchar(n & 0xFF);
2017/10/30(月) 18:17:57.46ID:ct0tj9Za0
>>63
LinuxなどのオープンソースのOSのカーネル部分を読めばいい。
Windowsのカーネルは、非公開だが、ReactOSで近いものが読める。
66デフォルトの名無しさん (ガックシ 068b-rVGZ)
垢版 |
2017/10/30(月) 18:19:48.86ID:6LR7RaNa6
シフト演算子でやろうと思ったら先越されてた
2017/10/30(月) 18:21:54.38ID:S5mFuOM00
>>63
これ普通はどうやって勉強すんだろうな 興味あるわ

おれはいきなりデバドラ書かされたんで理解を強制されたけど
あのへんの概念なしで腑に落ちる理解できるもんなん?
2017/10/30(月) 18:47:24.58ID:6zI0CLS+0
>>65
なんでファイルとストリームの結びつきでLinuxカーネルが出てくるの?
69デフォルトの名無しさん (ワッチョイ 7102-rVGZ)
垢版 |
2017/10/30(月) 19:47:29.26ID:4jg/LOEr0
>>68
ストリームを作ってるのがカーネルだからだろ。
2017/10/30(月) 19:50:12.31ID:ct0tj9Za0
>>68
CランタイムならLLVMのlibc++か、GNUのlibstdc++を読めばいい。
カーネル見ずに読めればね。
2017/10/30(月) 19:56:28.17ID:oEYvBlvb0
>>60 0b...で2進数のリテラル表現ってできるんだっけ?

>>64 エンディアネスに対する配慮が…。
2017/10/30(月) 19:59:34.77ID:w02M5Pe50
8進 16進はあるけど 0b... な2進リテラルは余所の言語じゃね?
2017/10/30(月) 20:01:52.91ID:ct0tj9Za0
2進数リテラル(C++14)
https://cpprefjp.github.io/lang/cpp14/binary_literals.html

C++14の機能らしい。D言語やC#にもあったよね。
2017/10/30(月) 20:07:07.38ID:ct0tj9Za0
int bigendian(void)
{
union { int i; char c[sizeof(int)]; } u;
u.i = 1;
return !u.c[0];
}
この関数でエンディアンをチェックすれば? XScreenSaverから拾ったものだけど。
2017/10/30(月) 20:14:13.81ID:ct0tj9Za0
union endian_checker_union
{
int i; char c[sizeof(int)];
} endian_checker = { 1 };

#define IS_BIG_ENDIAN() (!endian_checker.c[0])
2017/10/30(月) 20:16:20.68ID:6zI0CLS+0
>>70
なんでC言語の話でlibstdc++が出てくるの?

fopenやらのストリームなんて、setvbufの説明読めばバッファリングしてるだけって理解できるだろ
カーネルやらlibcのソースなんて読む必要性なんてねーよ
77デフォルトの名無しさん (ササクッテロラ Sp9d-jmG0)
垢版 |
2017/10/30(月) 20:33:32.20ID:LaVtZ0d2p
ストリームなんて、なんでもかんでも先頭から順番に処理するってだけの概念だけどな。
ランダムアクセスメモリーも読み飛ばしと巻き戻し駆使してアクセスするのさ。
78デフォルトの名無しさん (ワッチョイ 719f-Akqv)
垢版 |
2017/10/30(月) 23:47:44.78ID:nQXUW6Dj0
>>49
マシン語には何でもできるねw
2017/10/31(火) 00:10:44.27ID:TMBeGW2t0
>>75
こんなのどう?

#define IS_BIG_ENDIAN (htons(1) == 1)
2017/10/31(火) 02:08:26.69ID:yucmEvc2r
>>64
あざます!
2017/10/31(火) 03:25:37.26ID:TMBeGW2t0
>>64
そういえばそれ、それでいいの?2回目以降は n >>= 8 では?
82デフォルトの名無しさん (ワッチョイ 1387-jmG0)
垢版 |
2017/10/31(火) 08:48:27.57ID:sbQ4uuQC0
>>79
それって、htons()のあるライブラリ間違えたら全く意味が無いマクロだよね?
2017/10/31(火) 09:15:02.97ID:om7ZjX940
>>72
接頭辞0bは今どきのgccで普通に使えちゃうんだなこれが
2017/10/31(火) 09:27:38.26ID:nPjSgXlla
gcc拡張が当然の前提で話が進むと結構困る
2017/10/31(火) 11:06:07.87ID:om7ZjX940
なので、質問者も回答者も 「ほんとはダメだけどgccならこうよ」
みたいな但し書きを一筆しとくべきだね
2017/10/31(火) 12:32:05.51ID:dHzwAoXy0
>>81
間違いでした。ぺこり。
2017/10/31(火) 23:37:41.07ID:TMBeGW2t0
>>82
ライブラリというか、ヘッダだな。#include <arpa/inet.h> とか。

コンパイラにもよるだろうけどだいたいはヘッダの中だけで #define されているか
ビルトインの関数に置き換えられるかインラインアセンブラになるか、適当に
うまいことやってくれると思う。(CPUが Big endian なら #define htons(x) (x) に
なってて何もしないだけになるかも知れない)。

それと一応 POSIX.1‐2008 のようなので使えるコンパイラは多いんじゃないかな。
88デフォルトの名無しさん (ワッチョイ 1be7-DNJs)
垢版 |
2017/11/01(水) 02:46:02.61ID:TUg4iVeD0
今ってC言語でwin32とかで作るアプリに基本構造とかなしで作る感じなの?
2017/11/01(水) 07:20:25.79ID:oQpzogGj0
日本語でOK
90デフォルトの名無しさん (ワッチョイ 1387-jmG0)
垢版 |
2017/11/01(水) 09:27:14.69ID:AnlYMxNy0
イベントを拾って条件分岐みたいな部分は全部関数内に隠蔽された。
今は決まった名前のコールバック関数を埋めるだけのお仕事。
2017/11/01(水) 13:43:28.66ID:Sb/s6/mM0
malloc
realloc
わからん
使うん?
2017/11/01(水) 14:04:15.81ID:G3xjFDeG0
ケースバイケース
2017/11/01(水) 14:12:00.47ID:0yoHAkyy0
実行時に必要なメモリーサイズが決まるようなプログラムだと必要。
最初から大きなメモリーを確保しても無駄になるかもしれないし、
当初想定したサイズでは足りなくなるかもしれない。
そういうときに使う。
94デフォルトの名無しさん (ササクッテロラ Sp9d-jmG0)
垢版 |
2017/11/01(水) 14:12:15.55ID:Dwgab4vip
組み込みでは1度大きく確保したら後は自前で中身やり繰りするから、あんまり使わない。
2017/11/01(水) 15:19:44.00ID:Sb/s6/mM0
VS2017でやってるんだがファイル分割ってどうやるんだ
2017/11/01(水) 15:24:42.09ID:GbnHNcua0
Visual Studio 2017 Part4
https://mevius.5ch.net/test/read.cgi/tech/1509244956/

左のファイルのツリーで 項目の追加 で 新しく .c のソースファイル名指示すれば
勝手にコンパイルとリンクのターゲットにしてくれる (予定
2017/11/01(水) 22:58:59.77ID:jxmKQQAl0
>>94
組み込みって言ってもこの頃は最初から Linux 動いてるようなのもあるからな。
今は昔と違ってかなり自由度が高いのもあるんじゃないかな。
98デフォルトの名無しさん (ワッチョイ 1387-jmG0)
垢版 |
2017/11/01(水) 23:00:55.45ID:AnlYMxNy0
Linuxだからって、メモリーリークが無くなるワケじゃ無いからなぁ〜。
2017/11/01(水) 23:11:29.84ID:jxmKQQAl0
ま、そりゃそうだけどね。
2017/11/01(水) 23:58:24.93ID:T3zOKizx0
>>94
組み込みではどの処理にどれだけメモリを使うかは、
設計で決まるだろ。
101デフォルトの名無しさん (ワッチョイ edb6-zM96)
垢版 |
2017/11/02(木) 05:57:23.41ID:0ZjxmEGf0
「29歳既婚、2年前に会社を辞めた。ボードゲーム作りを始めて3700万円を
売り上げたけど何か聞きたいことはある?」回答いろいろ
http://labaq.com/archives/51880196.html
日本ボードゲーム界の異端児に聞く!ボードゲームデザイナーとして生きていくには?
https://bodoge.hoobby.net/columns/00013
はじめてボードゲームを作ってはじめてゲームマーケットに出店した ので、ひとり反省会をしてみる。
http://datecocco.hatenablog.com/entry/2015/11/26/000000
はじめて作ったボードゲームを売った話
http://nrmgoraku.hateblo.jp/entry/2017/05/17/210000
ボードゲームイベント「ゲームマーケット」から業界が見えた!
https://entertainmentstation.jp/61107
ボードゲームはどう作るのか、自分なりに考えた
http://roy.hatenablog.com/entry/2014/07/09/124824
オトナも遊べるボードゲーム!自作するといくらになるのか
http://www.d-laboweb.jp/special/sp312/
ボードゲームの展示イベント「ゲームマーケット」の成長記録からこれからの
市場に必要なことを妄想してみた。6年間の来場者数推移(2016年4月時点調べ)
https://bodoge.hoobby.net/columns/00001
ボードゲーム市場がクラウドファンディングの出現で急成長を遂げ市場規模を拡大中
http://gigazine.net/news/20150820-board-game-crowdfunding/
2017/11/02(木) 08:04:37.86ID:BfnVxeM2M
組み込みって言ってもピンキリだからなぁ
車のエンジン制御とかなら>>100が言うような感じだけど>>97が言うようなLinuxが載ってる機器のGUI回りとかだとその辺かなりアバウト
テレビみたいにインターネットブラウザとか載せてるとそもそも必要量を見積もれないし
103デフォルトの名無しさん (スップ Sdc2-98vg)
垢版 |
2017/11/02(木) 17:15:09.25ID:UMCJ4RbSd
https://ideone.com/lGSKsq
漸化式を使って組合せnCmの値を表示するプログラムです
数字を大きくすると正しい結果が出ないので困っています(例えば45C11
修正箇所教えてほしいです
2017/11/02(木) 18:14:52.51ID:I//dCy6q0
なぜ入力もlongにしないのだ?
105デフォルトの名無しさん (スップ Sd62-98vg)
垢版 |
2017/11/02(木) 18:20:01.37ID:aAcU+3M+d
>>104
入力はそこまで大きい値を入れるつもりはないのでintにしました
2017/11/02(木) 18:26:10.31ID:JDKI/Gfo0
>>103
C言語の場合は、整数同士の割り算は整数の除算になる。例)3/2 == 1.
整数をfloatやdoubleにキャストしても情報落ちのため、浮動小数点数では正確な除算は計算できない。

https://ideone.com/aDJXNO
107デフォルトの名無しさん (スップ Sd62-98vg)
垢版 |
2017/11/02(木) 18:39:45.95ID:aAcU+3M+d
>>106
gはnとmの最大公約数
あとnCmは必ず整数になるのでn-1Cm-1/Bの部分も小数にならず割り切れて整数になると思うんです
n=Ag m=Bg (A.Bは互いに素)として
n/m*n-1Cm-1
=A/B*n-1Cm-1 (※A/Bは小数になる)
= A*(n-1Cm-1/B)
=(n/g)*(n-1Cm-1/(m/g))
として計算すればうまく小数になるのを避けられるのではないかと考えました

すみませんC言語というより数学的な話で
2017/11/02(木) 19:31:39.13ID:JDKI/Gfo0
>>107
おそらくn/gは整数である。m/gも整数である。
では、(n-1)C(m-1)/(m/g)が整数であることの説明は?
109デフォルトの名無しさん (スップ Sd62-98vg)
垢版 |
2017/11/02(木) 19:43:50.32ID:aAcU+3M+d
>>108
nCm (※整数)
=n/m*n-1Cm-1
= (A/B)*(n-1Cm-1)
= A*(n-1Cm-1/B)
・左辺が整数なので右辺も整数です
・A/BはAとBが互いに素(※最大公約数が1)なのでこれ以上約分できない分数です

ということは右辺が整数になるときn-1Cm-1/Bが整数です
B=m/gなのでつまり(n-1)C(m-1)/(m/g)は整数ではないでしょうか
2017/11/02(木) 19:55:21.08ID:JDKI/Gfo0
nCmが整数なので、A*((n-1)C(m-1)/B)も整数であろう。
しかし、((n-1)C(m-1)/B)が整数と判断するのは論理の飛躍だ。

n=2, m=2, g=1と仮定すると、A=n/g=2/1=1, B=m/g=2/1=2.
すると、((n-1)C(m-1)/B)=(1C1)/2となって整数ではない。
111デフォルトの名無しさん (スップ Sd62-98vg)
垢版 |
2017/11/02(木) 19:59:15.85ID:aAcU+3M+d
>>110
この漸化式は0<m<nという条件のもとなのでn=mの可能性はないです
2017/11/02(木) 20:01:17.09ID:q0hQ6vwa0
>>110
nCm が整数かどうかは別の漸化式
(n+1)C(k+1) = nC(k+1) + nCk
を使って帰納的に証明する
2017/11/02(木) 20:10:31.31ID:JDKI/Gfo0
>>111
ならば、大きな整数で桁あふれ(overflow)が起きているのかもしれない。
long longを使うか、多倍長整数を使うとよい。
114デフォルトの名無しさん (スップ Sd62-98vg)
垢版 |
2017/11/02(木) 20:17:29.03ID:aAcU+3M+d
>>113
うーんやっぱりそうですか
ありがとうございます
115デフォルトの名無しさん (スップ Sd62-98vg)
垢版 |
2017/11/02(木) 20:22:30.92ID:aAcU+3M+d
(n*n-1Cm-1)/m
と計算せず
(n/g)*(n-1Cm-1/(m/g))
と遠回りして計算したのは掛け算より前に割り算をして桁あふれを防止するためだったのですが、これだけではまだ読みが甘いみたいですね
2017/11/02(木) 20:33:31.27ID:JDKI/Gfo0
k>nのときnCkはゼロになるはずだ。間違えている。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況