• ベストアンサー

最も計算量の少ない最小値発見について

uwiの回答

  • uwi
  • ベストアンサー率74% (55/74)
回答No.3

> 現在、二分木を用いて最小値検索 二分木というかたぶんトーナメント方式で、 一回戦はa1とa2,a3とa4,…、少なかった方が勝ち上がって二回戦、同様に三回戦、… というやり方だと思います。ただこれだと1回戦の終了をまたないと2回戦が始められないという問題があります。 で、よくある実装としては、 a1 = 4 変換-> 00001111 a2 = 5 変換-> 00011111 a3 = 2 変換-> 00000011 a4 = 7 変換-> 01111111 … としてORをとって 00000011 逆変換-> 2 という手順で最小値を求めます。こうすることで分散しても待ちが発生しない実装になります。ただ、データの種類がわかっている場合しかできません。 ハードの方はあまり詳しくなのでどっちの実装がいいのかは知りません。

tyamoroneu
質問者

お礼

お答えありがとうございます。 この方法なら、かなりのスピードが期待できると思います。 最小の値をもつ変数の検索にはXORを使えば大丈夫そうですね。 どちらかというと、最小値そのものよりも最小値をもつ変数の方が重要なんです。(最初の説明で書くべきでした) ハードウェア実装への難点は、データの値が1万以上(データ数は1000以上)となると,変換のために用意する変数のビットが大きくなるのと,大量のAND回路とXOR回路を使用するため,回路規模が少し心配です。 回路規模が大きくなりすぎた場合,上位桁と下位桁の多段階に分け、最小値を発見する方法も考えてみます。 上位桁の最小の値の中で下位桁で最小の値を持つ値を探索(スピードが落ちてしまいそうですが) かなり参考になりました。ありがとうございます

tyamoroneu
質問者

補足

今回使用するデータの種類  全てデータは同じビット幅で、符号なし(正の)整数です。

関連するQ&A

  • エクセル最大値最小値の計算

    あるデータの集まりから最大値最小値を引きたいのですが、一つ一つ計算式を入力するのは大変なので、自動に最大最小を見つけ出して計算させるにはどうしたらよいのでしょう =sum(a2+b2-最大-最小)という風な感じにしたいのですが・・・

  • 最小化したプログラムのメモリ使用量について

    最小化したプログラムのメモリ使用量について タスクマネージャーのプロセスタブを開き、各プロセスが使用しているメモリ量を確認します。 たとえば、IE(当方、社内規定によりIE6利用中)が100MBメモリを使用しているとします。 これを最小化ボタンでタスクバーに納めると、メモリー使用量が激減します(場合によっては2MB程度まで)。 これは、どういう意味なのでしょうか? PFの使用量が変化しないということは、仮想メモリーにデータを退避させ、物理メモリ上の空き領域を増やしているとみていいのでしょうか? 過去の質問の中で、UI部分のメモリーが必要なくなったために少なくなるという回答を見ましたが それは違うのではないかと思っています(キャッシュなどを考えると2M程度で収まるとは到底思えない)。 そもそもIE6はメモリーリークを起こすので、その分が開放された、という話を聞いたことがあります。 これは正しいのでしょうか? 取り立てて困っているわけではありませんが、好奇心というか知りたがりというか・・・。 ご教授のほど、よろしくお願いします。

  • エクセルでの最小二乗法の計算

    化学実験で得られたデータをエクセルを使って計算したいと思っているのですが、 使い方がよく分かりません。 最小二乗法の計算方法。 また、エクセルの使い方が詳しく載っているサイトなどがあれば教えて欲しいです。

  • データ量の計算について

    データ量の計算についての質問です。 一画面30万画素の画面で、256色を同時に表示できるパソコン一画面のデータ量は何Mバイトになるか。 バイトの求め方がいまいちわかりません。 256色は1バイトになるのはわかるのですが、その先の計算方式についてよくわかりません。 答えられる方、詳しく説明できる方いたらお願いします。

  • 標準偏差の計算方法

    最大値と最小値だけが分かっている状態で標準偏差って計算できるでしょうか? たとえば最大値が130で最小値が90と想定したとき、平均は(130+90)/2=110と想定計算できますが、標準偏差はどう計算すればよいでしょうか? 教えてください。

  • 最小二乗法 エクセルと手計算の違いを教えてください。

    最小二乗法をおなじデータで手計算とエクセルそれぞれでやったところ、違う式が求まりました。 どちらかの計算ミスではないとしたら違ってしまったことについてどんな理由が考えられますか?

  • 金型の歪み量の計算

    本当に基本的なことで申し訳ないですが、アドバイスお願い致します。 鋳造による金型の歪み量を計算したいのですが、どのように計算したらよいのでしょうか。 必要なデータ等、計算の考え方等どんなことでも助かります。 よろしくお願い致します。

  • CPUの計算量、計算速度について

    いくつかのゲームやパソコンのCPUは64bitなどのようですが、 64bitというのは、約1844京です。 このデータを約2GHzのスピードで処理する。 すると、2GHzは20億ぐらいなので、 1844京÷20億=92億秒 92億秒、約10万日かかってしまいます。 これはもしかして割るのではなく、かけるのでしょうか? 1844京のデータを1秒間に20億回取り扱える。 1844京×20億が、1秒間に取り扱える限界のデータ量ということでしょうか? ただ、スパコンの京が1秒に計算できる量が「1京」と聞いています。 私の認識はどこが誤っているのでしょうか?

  • Excelで最大値最小値の検出

    皆さん こんばんは。  データのExcel配列は下記のようになっています。空白セル(数は不定)を境目に異なるグループに分け、各グループの最大値あるいは最小値を(グループごとに計算すればできますが、データの量が多いので手間かかります)一遍で検出したいですが、何かいい方法はないでしょうか。皆さん教えてください。宜しくお願い致します。 A列     B列        C列      D列     (時間)  (データ)     (最大値)   〈最小値) 0:00   7.316784186 0:05   7.178492184 0:10   7.031467139 0:15 0:20 0:25 0:30   4.878174647 0:35   3.402687629 0:40   2.051343872 0:45   0.420805671 0:50 0:55   2.175188612 1:00   2.849337126 1:05   3.256652642 1:10 1:15   4.427495186 1:20 1:25 1:30 1:35   6.008051928 1:40   6.773041277  ・    ・  ・    ・  ・    ・  ・    ・

  • 法則を発見したいです。

    お知恵をお貸し下さい。 「1~9までのマスがある。マスにはA・Bが入る。 1つのマスにはA・Bのどちらかのみは入れる。 A・Bをいれると○か×の結果が表示される。 同じ組み合わせでも必ず同じ結果が表示されるわけではない。 結果はある法則に基づき表示される。」 この法則を発見する為に、どのようなデータを取って どのような検討をすればよいでしょうか? データ量はそれほど取れないので(300サンプルほど) 少ないデータ量で発見できれば良いと思っております。