• ベストアンサー

スパースベクトルとは

現在C言語でリスト構造について勉強しています。 その中でスパースベクトルというものが出てきたのですが、これはどのようなもので何の用途に用いられるものなのでしょうか。 googleで検索してみたのですが、分かりやすい解説を見つけることはできませんでした。どうかよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

スパースとは「まばら」という事で、ようはスカスカという事です。 例えば、要素10000の配列のなかで、0以外の値を持つのが10個しかないものとか。 単なる1次元配列ならまだなんとかなりますが、これが2次元や時系列となると、量が増え過ぎて現実的に計算できなくなります。 実際に重要なのはそのなかの10個だけだとしたら、専用のデータ構造を用意する事で、実用的な計算を行えるようになるでしょう。 ……って話ではない?

sumou111
質問者

お礼

回答ありがとうございます。 よく分かりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • vectorクラスについて。

    現在、C++Builderでプログラミングをおこなっていて、vectorクラスを使用することになりました。 今日どうしても知りたいのは、「vector」の読み方です。 ベクター?ベクトル??どちらなのでしょう。 そして、C++で使用したいと考えているのですが、検索してみると、JAVA関連のページが大半で、C++での使用例は1つか2つ・・・でした。使い方は同じなのかもしれないのですが、JAVAを勉強したことがなく、プログラミング自体始めて間もないので、二つの言語を関係づけることが難しくて・・・(-_-;) そこで、C++でvectorクラスの使用方法などが書かれているサイトをご存じでしたら、是非教えて下さい。 よろしくお願いします。

  • ベクトルの外積 軸性ベクトルについて

    私は理系の大学に通っている3回生です。 いま連続体力学という授業のなかで、ベクトルを勉強しています。 授業のなかで ベクトルの外積A×Bは軸性ベクトルであることを証明せよ。 という証明問題がでたのですが、どうしてもわかりません。 どなたかわかる方 解説お願いします。

  • x線散乱の強度と逆格子ベクトル

    現在x線散乱を勉強しているのですがx線散乱の強度の代償は結晶構造において何を表すのでしょうか? またブラック散乱は散乱ベクトルが逆格子ベクトルと等しい点で起こるということはわかったのですがこれは実空間においてどこで反射が起こっているのかがよくつかめません。 例えば逆格子ベクトルG=(1.1.1)での反射は実際の結晶内では(111)点?(面?)で反射が起こっていいるのですか?そこらへんがイメージできないので理由を含めて解説お願いします。

  • csv読込でVectorに格納した数値を分類したい

    C++について2回目の質問となります。 私、現在CSVファイルの値を取得するコードを書いています。 後々、この値をある計算に使う予定です。 そこで、計算に使う際に使いやすいように分類しながら値を変数に格納したいと考えてます。 CSV1行を分割後にVectorに格納しようと考えています。 このVectorの型に構造体を入れることってできるのでしょうか。 1行を分類したいという意図がありまして、Vector<struct ***>とできないかと思っているのですが、 これは有効なのかがわかりません。 当初は、Vector<int>にするか、Vectorを2次元配列にしてCSVデータを入れていき、計算のときに何番目(何列目)を取り出す、というやりかたにしようと考えていたのですが、分類の仕方は決まりきっているので、分類ごとに構造体を用意し、Vector<struct ***>に順番に入れていく、というやり方を思いつきました。 が、1行を一旦Vector<int>に入れてしまって、あとで必要なところを要素指定したほうがいいのではとまた思い直し、混乱が起こっています。 Vector<struct ***>ということはできるのか、という点、 Vector<int>にして、あとで構造体(変数?)にいれるべきなのか、という点、 または、Vectorに入れるべきではないのか(構造体に入れるならば、リストにすべきか)という点を教えていただけないでしょうか。 わかりにくいようでしたら、随時ご指摘お願いします。 すみません、C++初心者なので、もしかしたらとんでもないことをいっているかもしれませんが、有識者の方、アドバイスをお願いします。

  • c言語のリスト

    C言語で構造体まではどこのサイトでも乗っていますが、リスト、スタック、キュウなどのことになるのありません。どこか詳しく解説しているサイトご存じないですか?おしえてください。

  • Vectorの中のVectorについて

    現在Vectorを使ってプログラムを作っています。 その過程でVettorの中に違うVectorを追加していき、追加されたVectorのsize()を出したいのですが、どのように記述すればいいのかがいまいちわかりません。 というより、そもそもそういうことは可能なのでしょうか? 概要としては --------------------------------------------------------- String[] s ={"a","b","c","d","e","f","g","h","i","j"}; Vector v = new Vector(); Vector x = new Vector(); for (int i=0; i<=9; i++) { v.add(i, s[i]); } x.add(v); のように追加されたVectorの中のVetorの大きさ、つまりこの例なら結果としてVector vの中の要素の数10を出したいのです。 size()を使うのだとは思うのですが・・・・・・・・・。 どうすればVectorの中のVectorの要素数を返すことが出来るのでしょうか? ご教授していただければ幸いです。

    • ベストアンサー
    • Java
  • ベクトルの問題です。使われている定義の意味?

    三角形OABにおいて、OA=1、OB=4、∠AOB=2/3πとし、点Oから辺ABにおろした垂線の足をH、辺OBの中点をM、線分OHと線分AMの交点をCとします。 OHベクトルは6/7OAベクトル+1/7OBベクトルだとわかりました。 しかし、OCベクトルをOAベクトルとOBベクトルを使って表す方法が解説を読んでもわかりません。 模範解答の中では、OCベクトル=kOHベクトルとして、OBベクトルをOMベクトルに直し、 Cは直線AM上の点だから6/7k+2/7k=1になる。など書いてありますが、よくわかりません。 わかりやすく解説していただけるとうれしいです。 よろしくおねがいします

  • 割り込みベクターをC言語で書きたい

     皆さん、有難う御座います。時々質問させて頂いています。  今回は、ベクターアドレスをC言語で書く方法について質問します。  ルネサスのH8マイコンを使っています。モニターを使うとRAM上に割り込みの仮想ベクターを作れます。  仮想ベクターには、割り込みのジャンプ先アドレスが書かれます。  現在アセンブラで書いているのですが、C言語で書く方法は無いでしょうか。  二つの方法で書きたいと思っています。  アセンブラで次の二つの方法に相当するC言語命令を知りたい。 (1)ORGとEQU命令を使った方法 (2)ムーブ(Z80ならロード)命令で関数のアドレスをメモリに書く方法  ルネサスにはHEWと言うソフトが有りますが、HEW特有の命令によらず、一般的なコンパイラが持っている機能で実現したい。  以上宜しくお願いします。

  • リスト構造の参考書

    タイトルの通り、C言語のリスト構造について基礎から詳しく載っているお勧めの参考書を探しております。 リスト構造は、最初の要素をダミーでとってそれからどんどん下に要素を付け足していくというような手法を使うのが好ましいということを聞いたので、解説にあたってそのような手法を使っているものに絞っての質問です。 何か、お勧めの良書がありましたら教えてください。

  • 空間ベクトル

    空間内の4点A(1,3,-1),B(0,2,1),(1,1,0),(-1,7,z)が同一平面上に存在するように、zの値を求めよ。 という問題なのですが、ABベクトル、ACベクトル、ADベクトルを求めるに当たって、点Aから各点を引いていたのですが、√の中に入れて二乗してそれらを足さなくてもいいのですか? 公式のAB=√(b1-a1)^2+(b2-a2)^2+(b3-a3)^2 を使わない理由が知りたいです。 ベクトルは学習したことがなく、独学中ですので、おかしなことをいっている部分もあると思いますので、全体的な解説を踏まえて教えてくださるとありがたいです。 宜しくお願い致します。