全2241件中2161~2180件表示
  • 組み合わせ順列

    nCrを求める関数combination(n,r)をC言語で作りたいのですが、どうすればよいか教えてください。また、参考となるようなサイトを教えてください。僕の作った関数だと、すぐに桁あふれになってしまいます。そのことを考慮して、桁あふれにになりにくい関数もつくりました。これは パスカルの三角形の関係を使ったnCr=n-1Cr +n-1Cr-1の関係を使っての再帰関数です。しかし、これだと結果を出すのに時間がかかってしまいます。僕がつくった関数をいくつか出しておきますのでいい考えがあれば教えてください。64C32が高速に正確に出れれば最高です。 long combination(int n,int r) { int i, a, b; long c; if(r>n/2) r=n-r; a= n; b= 1; c= 1L; for(i=0 ;i< r ;i++){ c= c* a/ b; a--; b++; } return c; } これはすぐに桁あふれになってしまう。 long combination(int n,int r) { int i, a, b; double c; if(r>n/2) r=n-r; a= n; b= 1; c= 1.0; for(i=0 ;i< r ;i++){ c= c/b*a; a--; b++; } return (long)c; } これはcをdoubleにして計算する分、丸めこみが生じ誤差がでる。 long combination(int n,int r) { long c; if(r> n-r) r=n-r; if(r==0) return 1; else if(r==1) return n; else{ c= combination(n-1,r-1)+ combination(n-1,r); return c; } } これは誤差は出ず正確であるがいかんせん遅い!

  • 組み合わせ順列

    nCrを求める関数combination(n,r)をC言語で作りたいのですが、どうすればよいか教えてください。また、参考となるようなサイトを教えてください。僕の作った関数だと、すぐに桁あふれになってしまいます。そのことを考慮して、桁あふれにになりにくい関数もつくりました。これは パスカルの三角形の関係を使ったnCr=n-1Cr +n-1Cr-1の関係を使っての再帰関数です。しかし、これだと結果を出すのに時間がかかってしまいます。僕がつくった関数をいくつか出しておきますのでいい考えがあれば教えてください。64C32が高速に正確に出れれば最高です。 long combination(int n,int r) { int i, a, b; long c; if(r>n/2) r=n-r; a= n; b= 1; c= 1L; for(i=0 ;i< r ;i++){ c= c* a/ b; a--; b++; } return c; } これはすぐに桁あふれになってしまう。 long combination(int n,int r) { int i, a, b; double c; if(r>n/2) r=n-r; a= n; b= 1; c= 1.0; for(i=0 ;i< r ;i++){ c= c/b*a; a--; b++; } return (long)c; } これはcをdoubleにして計算する分、丸めこみが生じ誤差がでる。 long combination(int n,int r) { long c; if(r> n-r) r=n-r; if(r==0) return 1; else if(r==1) return n; else{ c= combination(n-1,r-1)+ combination(n-1,r); return c; } } これは誤差は出ず正確であるがいかんせん遅い!

  • constについて

    #include <iostream> using namespace std; class I { int *x; public: unsigned int size; I(){size=0;x=new int[size];} I(unsigned int i){size=i;x=new int[size];} ~I(){delete []x;} int &operator()(unsigned int i){return x[i];}//!!!! const int &operator()(unsigned int i) const{return x[i];}//???? }; void main() { I a(10); for(int i=0;i<10;i++)a(i)=i;a(2)=a(0); for(int i=0;i<10;i++)cout<<a(i); } この場合は//????はいらないと思いますが //????を定義することがありますがどんな場合でしょう //!!!!があるのにあったほうがいいのはどんな場合でしょう?

  • 2分木で作るプログラミングについて

    2分木を使って、ゲームのプログラミングをしなくてはいけません。 内容は "生き物あてクイズ” ”足はある?” YES (ユーザは英大文字で回答) ”それはCat?" YES ”私の勝ち” ”生き物あてクイズ” ”足はある?” NO ”それはSnake?” NO ”降参!それはなに?” EARTHWORM  ”EARTHWORMのための質問を入力してください” DOES IT LIVE UNDERGROUND? ”続けますか?”Yes ”生き物あてクイズ” ”足はある?”NO ”DOES IT LIVE UNDERGROUND?”NO ”それはSnake?”NO ”降参!それはなに?”FISH ”FISHのための質問を入力してください” DOES IT LIVE IN WATER? "続ける?”NO さようなら とまあこのようなプログラミングです。 YESと答えた質問は木の左に、 NOと答えた質問は木の右に保存されます。 皆様どうぞよろしくお願いします。

  • template<calss T> A(const T &t=T())

    template<class T> A(const T &t=T()); という関数宣言において引数のところの解釈に戸惑ってます どういう風に解釈したらいいのか教えていただければ幸いです

  • 2分木で作るプログラミングについて

    2分木を使って、ゲームのプログラミングをしなくてはいけません。 内容は "生き物あてクイズ” ”足はある?” YES (ユーザは英大文字で回答) ”それはCat?" YES ”私の勝ち” ”生き物あてクイズ” ”足はある?” NO ”それはSnake?” NO ”降参!それはなに?” EARTHWORM  ”EARTHWORMのための質問を入力してください” DOES IT LIVE UNDERGROUND? ”続けますか?”Yes ”生き物あてクイズ” ”足はある?”NO ”DOES IT LIVE UNDERGROUND?”NO ”それはSnake?”NO ”降参!それはなに?”FISH ”FISHのための質問を入力してください” DOES IT LIVE IN WATER? "続ける?”NO さようなら とまあこのようなプログラミングです。 YESと答えた質問は木の左に、 NOと答えた質問は木の右に保存されます。 皆様どうぞよろしくお願いします。

  • constについて

    #include <iostream> using namespace std; class I { int *x; public: unsigned int size; I(){size=0;x=new int[size];} I(unsigned int i){size=i;x=new int[size];} ~I(){delete []x;} int &operator()(unsigned int i){return x[i];}//!!!! const int &operator()(unsigned int i) const{return x[i];}//???? }; void main() { I a(10); for(int i=0;i<10;i++)a(i)=i;a(2)=a(0); for(int i=0;i<10;i++)cout<<a(i); } この場合は//????はいらないと思いますが //????を定義することがありますがどんな場合でしょう //!!!!があるのにあったほうがいいのはどんな場合でしょう?

  • template<calss T> A(const T &t=T())

    template<class T> A(const T &t=T()); という関数宣言において引数のところの解釈に戸惑ってます どういう風に解釈したらいいのか教えていただければ幸いです

  • make_heap()が分かりません

    #include <iostream> #include <vector> #include <algotithm> using namespace std; int main() { vector<char> v; int i; for(i=0;i<20;i+=2)v.push_back('A'+i); couti<<"sequence before building heap:\n"; for(i=0;i<v.size();i++)cout<<v[i]<<" "; cout<<"\n\n"; make_heap(v.begin(),v.end()); //? couti<<"sequence after building heap:\n"; for(i=0;i<v.size();i++)cout<<v[i]<<" "; cout<<"\n\n"; } の結果が sequence before building heap: A C E G I K M O Q S sequence after building heap: S Q M O I K E A G C ということですが make_heap() の機能がわかりません make_heap() の機能・動作に付いて教えてください (書き間違いがあるかもしれませんので容赦ください)

  • make_heap()が分かりません

    #include <iostream> #include <vector> #include <algotithm> using namespace std; int main() { vector<char> v; int i; for(i=0;i<20;i+=2)v.push_back('A'+i); couti<<"sequence before building heap:\n"; for(i=0;i<v.size();i++)cout<<v[i]<<" "; cout<<"\n\n"; make_heap(v.begin(),v.end()); //? couti<<"sequence after building heap:\n"; for(i=0;i<v.size();i++)cout<<v[i]<<" "; cout<<"\n\n"; } の結果が sequence before building heap: A C E G I K M O Q S sequence after building heap: S Q M O I K E A G C ということですが make_heap() の機能がわかりません make_heap() の機能・動作に付いて教えてください (書き間違いがあるかもしれませんので容赦ください)

  • make_heap()が分かりません

    #include <iostream> #include <vector> #include <algotithm> using namespace std; int main() { vector<char> v; int i; for(i=0;i<20;i+=2)v.push_back('A'+i); couti<<"sequence before building heap:\n"; for(i=0;i<v.size();i++)cout<<v[i]<<" "; cout<<"\n\n"; make_heap(v.begin(),v.end()); //? couti<<"sequence after building heap:\n"; for(i=0;i<v.size();i++)cout<<v[i]<<" "; cout<<"\n\n"; } の結果が sequence before building heap: A C E G I K M O Q S sequence after building heap: S Q M O I K E A G C ということですが make_heap() の機能がわかりません make_heap() の機能・動作に付いて教えてください (書き間違いがあるかもしれませんので容赦ください)

  • make_heap()が分かりません

    #include <iostream> #include <vector> #include <algotithm> using namespace std; int main() { vector<char> v; int i; for(i=0;i<20;i+=2)v.push_back('A'+i); couti<<"sequence before building heap:\n"; for(i=0;i<v.size();i++)cout<<v[i]<<" "; cout<<"\n\n"; make_heap(v.begin(),v.end()); //? couti<<"sequence after building heap:\n"; for(i=0;i<v.size();i++)cout<<v[i]<<" "; cout<<"\n\n"; } の結果が sequence before building heap: A C E G I K M O Q S sequence after building heap: S Q M O I K E A G C ということですが make_heap() の機能がわかりません make_heap() の機能・動作に付いて教えてください (書き間違いがあるかもしれませんので容赦ください)

  • Cのプログラミングについて

    入力した半角のアルファベットが大文字なら小文字で,小文字なら大文字で表示するプログラムを作り, また,半角のアルファベット以外の文字が入力された場合は,「入力エラー」と表示するプログラムを作りたいんですけど,作ってもうまく動作してくれません。簡単だとは思うんですがお願いします。

  • VC++ vs C++Builder

    私はボーランド派なのでVC++はしたことがありません 両方やった人に聞きます 1.どちらがいいのですか? 2.VC++は完全にはSTLに対応できていないのですか? 3.RADツールとしてはどちらが優れて今⊂のでしょうか? 4.利害得失を列挙できるのであれば教えてください

  • 動的メモリ確保の外部関数

    画像処理関係のプログラムを作成しているのですが(C言語で)、動的にメモリ確保をすることが頻繁にあります。 そこで、どんな型(int,char,double,etc..)の場合でもメモリ確保できるような、1つの外部関数を作成したいと考えています。 例えば、 int Memory(引数) { 型宣言; int型の動的メモリ確保; char型の動的メモリ確保; double型の動的メモリ確保; return 0; } イメージでは、上のような感じです。 もしかして、このような考えは、不可能でしょうか? どなたか良いアドバイスがあれば、ご教授ください。 よろしくお願いします。

  • ファイルの大きさを調べたいのですが、、、(C言語)

    2週間前にC言語の勉強を始めたばかりです。 「あるファイルのサイズを見て、メモリを確保し、  読み出した内容をソートして、同じファイルに再び書き出す」 というプログラムを作ろうとしているのですが、 「ファイルのサイズを調べる」という時点でつまづいてしまっています。。。 適当に英数字を書き連ねたファイル(aaa.txt)を、 (fp = fopen(filename,"a+") という形で開いています。 追加読み書きするので"a+"かな? と思ったのですが、、、   //ファイルの終端に移動し、その位置を取得する   fseek(fp1, 0L, SEEK_END);   position = ftell(fp1);   printf("ファイルポインタの位置は %ld です",position); ファイルの大きさを調べるのに、この方法を試してみたのですが、 位置の値が0になってしまいます。。。 filelength(fileno(fp)); でも試してみましたが、 やっぱりファイルサイズが0と返ってきます。 何が原因なのか、何が悪いのかも判らなくて途方に暮れています。 「ここはこう書くんだよ」と、的確なご回答を戴けると幸いです。 基本的な質問で申し訳ありませんが,宜しくお願い致します。

  • VC++ vs C++Builder

    私はボーランド派なのでVC++はしたことがありません 両方やった人に聞きます 1.どちらがいいのですか? 2.VC++は完全にはSTLに対応できていないのですか? 3.RADツールとしてはどちらが優れて今⊂のでしょうか? 4.利害得失を列挙できるのであれば教えてください

  • VC++ vs C++Builder

    私はボーランド派なのでVC++はしたことがありません 両方やった人に聞きます 1.どちらがいいのですか? 2.VC++は完全にはSTLに対応できていないのですか? 3.RADツールとしてはどちらが優れて今⊂のでしょうか? 4.利害得失を列挙できるのであれば教えてください

  • Cのプログラミングについて

    入力した半角のアルファベットが大文字なら小文字で,小文字なら大文字で表示するプログラムを作り, また,半角のアルファベット以外の文字が入力された場合は,「入力エラー」と表示するプログラムを作りたいんですけど,作ってもうまく動作してくれません。簡単だとは思うんですがお願いします。

  • ダブルバッファ法を教えて下さい

    通信系のプログラムを作っているのですが、まったく分からなくて困っています。二つのメモリを確保し、まずバッファAが受信します。バッファAがいっぱいになるとバッファAはHDDに書き込みその間にバッファBで受信を行います。バッファBがいっぱいになるとHDDに書き込み、その間にバッファAが受信する・・・という風なサイクルでプログラムを動かしたいのですが、よろしくお願いします。C・C++で書かれたソースプログラムを下さい。