oldman50 の回答履歴

全37件中1~20件表示
  • 重み付きユークリッド距離

    今,k-means法を使ったクラスタリングプログラムを作っています. 2次元特徴のパタン集合を分類してグラフィカルに表示するものです. wikipediaによると,k-means法は (1)各パタンをランダムにN個のクラスタに分類 (2)各クラスタの中心を計算 (3)全パタンについて中心との距離を計算し,一番近いクラスタに割り当て (4)割り当てに変化がなければ終了,変化があれば(2)へ のように書いてあり,自分も理解できていたつもりだったのですが, ステップ(3)の「全パタンについて中心との距離を計算し…」という 部分が作れなくて困っています. 指定ではパタン間距離に「重み付きユークリッド距離」を使えとのこと だったのですが,自分は2パタン間で重み付きユークリッド距離が 使えるというところが理解できていません. 2次元なので,単純に距離ならばユークリッド距離を使えばいいと 思っていたんですが. ネットで調べたところ, ・d^2 = Σ wi (xi - yi)^2 という式は見つかったのですが,重み係数wiをどのように設定すれば いいのか分かりません. 非常に初歩的な質問をしているのだと思いますが, 教えていただけると嬉しいですm(_ _)m

  • ドロネー三角形分割のプログラムの解読をお願いしたいです。

    今現在、ドロネー三角形分割を行うプログラムをc言語で作成しているのですが、出鼻からつまづいています;; 参考プログラムはhttp://www.prefield.com/algorithm/geometry/delaunay.htmlのサイト様のものを読ませて頂いているのですが、c++で書かれているため、手間取っています。 特にリンク先の 「double Delaunay(vector<point> P) {」 以下がおそらく重要なのですが、どうにも・・・ 自分の考えでは、まず集合Sのn個の点を座標の昇順にソートし、その後初期の三角形の分割を求める。そしてその後最適性のあるドロネーへと、という具合なのですが。上のサイト様のプログラムはどのようにやっているのでしょうか。 他に参考になる資料、参考書など(出来ればc言語で書かれた)あれば教えてください。お願いします。

  • C++の改行を表すコマンド

    C++の勉強を始めたばかりなのです。 出力のコマンドで、改行は「endl」と「\n」の両方が使えるようですが、この2つの違いや使い分けはどのようにすればよいのですか?

  • 再帰と数学的帰納法の共通性?

    現在、アルゴリズムについて学んでいますが、 再帰についてわからないことがあります。 wikipedia"再帰"の項において、 ( http://ja.wikipedia.org/wiki/%E5%86%8D%E5%B8%B0) "数学的帰納法との原理的な共通性から、recursionの訳として数学では「帰納」を使うことがある。" という記述があります。 再帰と数学的帰納法の原理的な共通性 というのが、どういうことかわかりません。 数学的帰納法については、大学受験に使う程度の知識です。(証明において、n=1で命題が成り立つことを示し、n=kで成立すると仮定し、n=k+1で成り立つことを示す等。) 再帰は関数を定義するのに、その関数自身を使うという認識です。 再帰と数学的帰納法の原理的な共通性とは何なのでしょうか? ご教授お願いします。

  • ポインタを使うことのメリットとは??

     こんばんは、Cの初心者です宜しくお願いします。  Cでポインタの記述を良く見るのですが、色々と本とかサイトとかで調べましたが、ポインタを使うことのメリットとか、使う理由を書いてるものに巡り合いません。  一体何故ポインタというものがあるのでしょうか。  変数(アドレス)を参照する事で、メモリの節約とか動作が速くなるとか、そのようなものが主な理由でしょうか。  逆にポインタを使わないと書けないプログラムとかはあるのでしょうか。  関数は、ポインタを引き数として元から設計されているので仕方がないとしても、、、、、、  以上初心者としての非常に素朴な疑問です、宜しくお願いします。

  • ソケット通信の受信サイズ

    MFC VC++6.0で、ソケット通信を勉強しています。 サーバー側を http://athomejp.com/goldfish/mfc/socket/socketserver.asp を参考に「ソケットから何かを受信する」ところの 配列サイズとwhileの条件を char szBuf[1024]; while( nret != 0 ) に変更しました。 クライアントからは64バイトの送信をしているのですが、 サーバでReceiveしたサイズが16バイトで、whileを抜けてしまいます。 何が原因でしょうか、ご教示ください。 お願いいたします。

  • MFCの参考書を探しています

    現在、Visual C++のMFCを勉強しています。(開発環境はVisual Studio2008) 参考にしているのは「標準講座MFC6.0」と「スタンダードVisual C++」という本です。 ただどちらの本にもドキュメント・ビュー・アーキテクチャを使用したサンプルプログラムが少なく、またその詳細についてはあまり触れられていませんでした。 やはりMFCで開発をするにはその辺を知っておくべきと思いますので、上記についての詳細やサンプルプログラムを多く載せた参考文献・サイト等ありましたら教えてください。 話は少しズレますが、MFCに関する本やサイトって少ないですよね。MFCは今後、廃れていくのでしょうか?今後のWindowsの開発は.NET系の開発言語に移っていくのでしょうか? どちらか片方に対するご意見・ご回答で構いませんので、よろしくお願いします。

  • プログラマの職に就きたいのですが・・・

    組み込み系プログラマの職に就きたいと思っているのですが、どれくらい出来ていればいいのかわかりません。どんなプログラムが出来ていればよいのでしょうか?(これくらい出来ていれば採用される)わかるかたいらしたら教えてください。

  • スプライン補間関数が実装されている数学ライブラリについて

    スプライン補間関数が実装されているC++のライブラリがあれば、教えていただけないでしょうか? Boostにありそうだったので見てみたのですが、探し方が悪かったせいか見つけることができなかったので、質問させていただきました。 ご存じの方がいらっしゃったら、ご教授いただければと存じます。 よろしくお願いいたします。

  • スプライン補間関数が実装されている数学ライブラリについて

    スプライン補間関数が実装されているC++のライブラリがあれば、教えていただけないでしょうか? Boostにありそうだったので見てみたのですが、探し方が悪かったせいか見つけることができなかったので、質問させていただきました。 ご存じの方がいらっしゃったら、ご教授いただければと存じます。 よろしくお願いいたします。

  • 【VC++2005(CLR)】ファイル書き込み時、他でファイルが開かれていると落ちる

    いつも大変お世話になっています。 VC初心者です。 現在、ファイル書き込み処理で悩んでいます。 他のユーザがファイルをオープンしてたり、開こうとすると 落ちてしまいます。 たとえば、ファイルが開かれていることを検知して、 ユーザに「ファイルを閉じてください」とメッセージを出した後、 再度書き込み処理を実行できませんでしょうか。 (書き込み中は他のユーザからのアクセスを拒否させたいです。) 現在以下のようなソースを書いています。 //ファイルオープン System::IO::StreamWriter^ sw = gcnewSystem::IO::StreamWriter( path_w,false,System::Text::Encoding::Default); //ファイル書き込み String^ newData = "aaa"; sw->WriteLine(newData); //ファイルクローズ sw->Close(); お手数ですが、よろしくお願いします。

  • 三次元形状曲面の導出法

    数学板でも質問したことなのですが、アドバイスもあってこちらに流れてきました。 質問番号3464667 に関連した質問なのですが 格子点上に並んでいない(x,y)と(dz/dx,dz/dy つまり各方向の傾き)がわかっている条件で三次元曲面形状を導出するアルゴリズムを作成しました。最小二乗法を基本としたアルゴリズムをフォートランで作成したのですが、なぜスプライン関数を使わないのかという指摘を受けました。 スプライン関数は曲線では非常に有力な補間法であることは理解しているのですが、格子点上に並んでいないデータでスプライン曲面を作るのは境界のつなぎ合わせや、パラメトリック曲線をどう作ればいいのかよくわからなくて敬遠したのですが、実際スプライン関数を用いて三次元形状を導出することは可能なのでしょうか? また近似曲面としてβスプライン関数やナーブス曲面は近似関数として適当なのでしょうか?(コンピュータグラフィックスの世界でしか使わない??) よろしくお願いします。

  • 子ウィンドウのデフォルトウィンドウプロシージャについて

    ある本に例えばトップレベルウィンドウがいずれもキーボード入力のメッセージを処理せず、デフォルトウィンドウプロシージャに渡していたするとそのメッセージは親ウィンドウすなわちトップレベルウィンドウへと渡されると載っていたのですが、どういった場合がそうなるのでしょうか?できればプログラムでわかりやすくお願いします。

  • C++/CLIからC++の呼び出しで例外

    お世話になります。 C#からC++のNativeコード(unmanaged)を呼び出したいと思い、C++/CLIでラッパーを作りました。 そのラッパーのクラス内で、C++で書かれたNativeコードのクラスのインスタンスを作成する時に例外が発生してしまいます。 例外はこんな感じです。 System.Runtime.InteropServices.SEHException はハンドルされませんでした。 Message="外部コンポーネントが例外をスローしました。" Source="ManMovLib" ErrorCode=-2147467259(0x80004005) StackTrace: 場所 new(UInt32 ) C++/CLIは以下の様なコードで、コンストラクタ内でC++のクラスの実体を作っています。そして、このnewで例外が発生します。 AVSource::AVSource(void) {   m_pObj = new CAVSource; } C++側は、実は何もしていません。 CAVSource::CAVSource(void) { } そして、色々と試行錯誤をした結果、C++側のクラスにvirtual関数があると、例外が出てしまうという事実を突き止めました。 ただ、どこを調べても、virtual関数を用いてはいけないとは書いてありません。 実際、virtualを使ってはいけないという制約があるのでしょうか? また、何かNativeのコードを作成する際に注意点とかありますでしょうか? ちなみに、プロジェクトの設定で、Nativeコードのデバッグを可能にするチェックをつけてデバッグ実行すると、何故かこの例外は発生せずに、全て正常に動きます。これもなぞです。 よろしくお願いします。

  • C言語の電卓におけるincludeについて

    C言語の電卓におけるincludeについて C言語の電卓におけるincludeについて質問です。 プログラミング言語C第2版 ANSI規格準拠 B.W.カーニハン・D.M.リッチー著 質問1. 4章にある電卓プログラムですが、getch.cがcalc.hをincludeしないのはなぜですか? 解説よろしくお願いします calc.h #difine NUMBER '0' main.c #include <stdio.h> #include <stdlib.h> #include "calc.h" #difine MAXOP 100 getop.c #include <stdio.h> #include <ctype.h> #include "calc.h" stack.c #include <stdio.h> #include "calc.h" #difine MAXVAL 100 getch.c #include <stdio.h> 質問2. 第4章までしか読んでいませんが、「関数で返さない値はゴミ(garbage)になる」と書いていました。 関数で返さない値は、関数から抜けると消えるものと思っていたので驚きました。 関数で返さない値の後処理はどうすればいいのですか? 質問3. 外部変数と静的変数の違いは? ―メモ― 局所変数 自動変数     main内の変数     int x;                          static int x; 永久的なメモリが与えられることを意味する 外部変数          main外の変数     static int x; 静的変数          関数内の変数     static int x; レジスタ変数        変数をレジスタに置く register int x; 以上、有識者の方、教えてくださいmm

  • vectorのついて

    昨日、この質問コーナーでDirectXとC++を使って、文字を出力すること について質問させていただきました。的確なアドバイスにより、昨日の 問題は解決したのですが、新たな問題が発生しました。 ちょっと汚いプログラムですが、 for(int i=0; i< strlen(Text); i++) { if(IsKanji1st(Text[i])){ NovelChara* Chara=new NovelChara(); Chara->CreateChara(&Text[i], size, size, FontName); CharaList.push_back(Chara); i++; }else{ NovelChara* Chara= new NovelChara(); Chara->CreateChara(&Text[i],size,size, FontName); CharaList.push_back(Chara); } } のプログラムなんですが、汚いプログラムなんで説明を加えますと、 まず、文字を一文字ずつ作成して格納していくプログラムなのですが、 NovelCharaクラスは一文字のテクスチャ情報を格納するクラス。 それを作って、CreateCharaメソッドを使ってAPIを利用して一文字 の文字画像を作成。それを、CharaListというvectorコンテナに格納 するプログラムです。vector<NovelChara* > CharaList という感じです。これを使い、文章文字を作成していたのですが、 マップ間を移動するたびにマップ内にいるキャラクターの会話文の生成 と前のマップで作った会話文の破棄を繰り返していたのですが、3往復 マップ間を移動したところで、エラーがでました。 デバッグで確認してみると、vector<NovelChara*> に文字を格納している途中で、 for integer overflow if (_Count <= 0) _Count = 0; else if (((_SIZT)(-1) / _Count) < sizeof (_Ty)) _THROW_NCEE(std::bad_alloc, NULL); // allocate storage for _Count elements of type _Ty return ((_Ty _FARQ *)::operator new(_Count * sizeof (_Ty))); } のreturn のところで、ブレークポイントが発生しましたとなって、 とまってしまいます。vector内部は全くわからないので、どなたか このエラーが何が原因で発生しているものなのか知っている方がいらっしゃればアドバイスをお願いしたいのですが

  • vectorの中にmap

    vectorの中にmapを入れて 添字:ノードID [どのノードから来たのか|それまでのコスト] を表現しようと考えています. #include<iostream> #include<vector> #include<map> #include<list> // MACROS #define UNDEF -1 // PROTOTYPE DCLARE void init_path(std::vector<std::map<char, int> >, int size); int main(void) { //source -> source node // //size -> the number of node // //path -> store path infomation // ex: // path[1]: 1 is node id // char : from node id // cost : how cost from source to here // //adj -> show adjacency list eace node int source; int size; std::vector<std::map<char, int> > path; std::vector<std::list<char> > adj; size = 5; std::cout << "before" << std::endl; init_path(path, size); std::cout << "after" << std::endl; std::map<char, int>::iterator it; for(int i = 0; i < size; i++) { it = path[i].begin(); // std::cout << it->first << ":" << it->second << std::endl; } return 0; } void init_path(std::vector<std::map<char, int> > path, int size) { std::map<char, int> init; init.insert( std::map<char, int>::value_type('-', UNDEF) ); for(int i = 0; i < size ; i++) { path.push_back(init); } return; } *結果 before after Segmentation fault となり初期化をする所までは正常に動いたっぽいのですが どこが悪いのかわかりません(おそらくイテレータあたりかと思うのですが・・・・ 具体的にどうしたらいいのか分からないのでご指導ねがいます.

  • ヌル文字とは一体何でしょうか

    はじめまして。  私はC言語というか、プログラムの超初心者なのですが、参考書を読んでいる途中で「C言語では¥0を整数に変換すると、0という値になります」という記述があったのですが、これは一体どういう意味なのでしょか?どなたか分かりやすく教えていただければ非常に幸いです。

  • Visual C++ Express Edition 2008 での新規プロジェクト作成ができない

    自己解決できなかったので質問させて頂きます。 OS:Vista Home Premium Visual C++ Express Edition 2008 を使ってみたのですが、 「ファイル→新規作成→プロジェクト」で適当なプロジェクトを建てようよすると、 画面左下に『プロジェクト'●●●'の作成に失敗しました』と表示され、何も起こらない状態です。 そこで以下2つの方法を試しました。 1)参考:http://blog.bitmeister.jp/?p=497  手順1の「VsWizard.dllの登録」を行うと、  『モジュール"C:\Program"の読み込みに失敗しました。   バイナリが指定されたパスに格納されていることを確認するか、   バイナリまたは依存.DLLファイルに問題がないか調べてください。   指定されたモジュールが見つかりません。』  と表示され、次に進むことができませんでした。  このエラーメッセージの意味がさっぱり分かりません。  2)参考:http://oshiete1.goo.ne.jp/qa4225412.html  IEが原因のケースもあるようですが、OSがVistaなのでアンインストールできません。  セキュリティソフトはNortonを使用しています。  Nortonを眠らせ、再起動してからプロジェクト作成を試みましたが、状況は変わりませんでした。 どなたかアドバイスをよろしくお願いします。

    • 締切済み
    • noname#89229
    • C・C++・C#
    • 回答数3
  • C++言語で、構造体のコピーは可能(しても良い)のでしょうか?

    C++言語で、構造体のコピーは可能(しても良い)のでしょうか? 問題がある場合は、なぜだめなのか知りたいです。 構造体は可変長ではありません。 typedef struct kumi { char namae[10]; int ten; }Kumi; Kumi a, b; strcpy(a.namae, "AAA"); a.ten = 50; b = a;