タグ付けされた質問 「algorithm」

アルゴリズムは、問題に対する抽象的な解決策を定義する明確に定義された一連のステップです。このタグは、問題がアルゴリズム設計に関連している場合に使用します。

12
文字列が完全に同じ部分文字列で構成されているかどうかを確認するにはどうすればよいですか?
文字列を受け取る関数を作成する必要があります。これは、入力が繰り返される文字シーケンスで構成されるかどうかに基づいて返されるか、trueそれにfalse基づいている必要があります。指定された文字列の長さは常により大きく1、文字シーケンスには少なくとも1回の繰り返しが必要です。 "aa" // true(entirely contains two strings "a") "aaa" //true(entirely contains three string "a") "abcabcabc" //true(entirely containas three strings "abc") "aba" //false(At least there should be two same substrings and nothing more) "ababa" //false("ab" exists twice but "a" is extra so false) 以下の関数を作成しました: function check(str){ if(!(str.length && str.length - 1)) …

25
10億の数値の中央値を計算する
10億の数値と100のコンピューターがある場合、これらの数値の中央値を特定する最良の方法は何ですか? 私が持っている1つの解決策は: セットをコンピュータ間で均等に分割します。 それらを並べ替えます。 各セットの中央値を見つけます。 セットを中央値で並べ替えます。 最小中央値から最大中央値まで、一度に2つのセットをマージします。 我々が持っている場合はm1 < m2 < m3 ...、最初のマージをSet1し、Set2そして得られたセットで、我々はすべての数字が中央値よりも低く破棄することができますSet12(マージ)。したがって、どの時点でも同じサイズのセットがあります。ちなみに、これは並行して行うことはできません。何か案は?


7
どのJavaコレクションを使用すればよいですか?
この質問では、C ++ 11で標準ライブラリコンテナーを効率的に選択するにはどうすればよいですか?C ++コレクションを選択するときに使用する便利なフローチャートです。 これは、どのコレクションを使用すればよいかわからない人にとっては便利なリソースだと思ったので、Javaの同様のフローチャートを見つけようとしましたが、見つけることができませんでした。 Javaでプログラミングするときに使用する適切なコレクションを選択するのに役立つリソースと「チートシート」はありますか?どのようなリスト、セット、マップの実装を使用すべきかを人々はどのように知るのでしょうか?

7
短いテキスト文字列の効率的な圧縮アルゴリズム[終了]
現在のところ、この質問は、Q&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 小さなテキスト文字列を圧縮するアルゴリズムを探しています:50〜1000バイト(つまり、URL)。これに最適なアルゴリズムはどれですか?

9
文字列のハッシュ関数
私はC言語でハッシュテーブルに取り組んでおり、文字列のハッシュ関数をテストしています。 私が試した最初の機能は、ASCIIコードを追加してモジュロ(%100)を使用することですが、データの最初のテストでは結果が良くありません。130ワードで40衝突です。 最終的な入力データには8 000ワードが含まれます(ファイル内の辞書ストアです)。ハッシュテーブルはint table [10000]として宣言され、txtファイル内の単語の位置を含みます。 最初の質問は、文字列のハッシュに最適なアルゴリズムはどれですか?そして、ハッシュテーブルのサイズを決定する方法は? 前もって感謝します ! :-)

19
最大単一販売利益
ある日の株価を表すn個の整数の配列が与えられているとします。私たちは、ペア見つけたい(buyDay、sellDay)と、buyDay≤sellDay我々は上の株式を購入した場合、そのようなことを、buyDayとのそれを販売しsellDay、私たちは私たちの利益を最大にするが。 明らかに、可能なすべての(buyDay、sellDay)ペアを試し、それらのすべてから最良のものを取り出すことにより、アルゴリズムのO(n 2)ソリューションがあります。しかし、O(n)時間で実行されるより良いアルゴリズムはありますか?

30
合計が指定された数に等しい配列から要素のペアを検索します
n個の整数の配列と数値Xを指定して、合計がXに等しい要素(a、b)の一意のペアをすべて見つけます。 以下は私の解決策です、それはO(nLog(n)+ n)ですが、それが最適であるかどうかはわかりません。 int main(void) { int arr [10] = {1,2,3,4,5,6,7,8,9,0}; findpair(arr, 10, 7); } void findpair(int arr[], int len, int sum) { std::sort(arr, arr+len); int i = 0; int j = len -1; while( i < j){ while((arr[i] + arr[j]) <= sum && i < j) { if((arr[i] + …
122 algorithm 

13
クロスワードを生成するアルゴリズム
単語のリストを前提として、それらをクロスワードグリッドに配置するにはどうすればよいでしょうか。 これは、対称的な「適切な」クロスワードパズルのようなものである必要はありません。基本的に、各単語の開始位置と方向を出力するだけです。

8
末尾再帰はどの程度正確に機能しますか?
末尾再帰がどのように機能するか、および通常の再帰との違いをほぼ理解しています。私は唯一それが理由を理解していないしないそのリターンアドレスを覚えてスタックを必要としています。 // tail recursion int fac_times (int n, int acc) { if (n == 0) return acc; else return fac_times(n - 1, acc * n); } int factorial (int n) { return fac_times (n, 1); } // normal recursion int factorial (int n) { if (n == 0) return 1; …

13
O(n)時間とO(1)空間での重複の検索
入力:0からn-1までの要素を含むn個の要素の配列が与えられ、これらの数値のいずれかが何度も現れる。 目標:O(n)でこれらの繰り返し数を検索し、一定のメモリ空間のみを使用する。 たとえば、nを7、配列を{1、2、3、1、3、0、6}とすると、答えは1と3になります。同様の質問をここで確認しましたが、回答にはいくつかのデータ構造HashSetなどが使用されています。 同じための効率的なアルゴリズムはありますか?
121 c++  c  algorithm 

6
JavaのArrays.sortメソッドは、異なる型に対して2つの異なるソートアルゴリズムを使用するのはなぜですか?
Java 6のArrays.sortメソッドは、プリミティブの配列にはQuicksortを使用し、オブジェクトの配列にはマージソートを使用します。ほとんどの場合、クイックソートはマージソートよりも高速で、メモリの消費量も少ないと思います。私の実験は、両方のアルゴリズムがO(n log(n))ですが、それをサポートしています。では、なぜ異なるタイプに異なるアルゴリズムが使用されるのでしょうか?


16
3点から角度を計算する方法は?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 2年前休業。 ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 あなたがこれを持っているとしましょう: P1 = (x=2, y=50) P2 = (x=9, y=40) P3 = (x=5, y=20) それP1が円の​​中心点であると仮定します。それは常に同じです。私はで構成されて角度たいP2とP3の隣にある角度、または他の言葉ではP1。正確には内角。常に鋭角になるため、-90度未満になります。 私は思った:男、それは単純な幾何学の数学です。しかし、私は今約6時間式を探しましたが、arccosやvector scalar productのような複雑なNASAのことについて話している人しか見つかりません。まるで冷蔵庫の中にいるような気がします。 これが簡単な問題だと思う数学の教祖たち?ここではプログラミング言語は重要ではないと思いますが、それが重要だと考える人にとっては、JavaとObjective-Cです。両方に必要ですが、タグ付けしていません。
120 algorithm  math  geometry 

15
球のn個の点を均等に分散
Nポイント(おそらく20未満)の球の周りの位置をぼんやりと広げるアルゴリズムを必要としています。「完璧」の必要はありませんが、私はそれが必要なので、それらが一緒に束ねられることはありません。 この質問は良いコードを提供しましたが、これは100%ランダム化されているように見えたため、これを統一する方法を見つけることができませんでした。 この推奨ブログ投稿には、球体上の点の数を入力できる2つの方法がありましたが、SaffおよびKuijlaarsアルゴリズムは、転記できる疑似コード内にあり、見つけたコード例には、「node [k]」が含まれていましたが、これはできませんでした説明してその可能性を台無しにしてください。2番目のブログの例はゴールデンセクションスパイラルで、一定の半径を定義する明確な方法がなく、奇妙な束になった結果が得られました。 この質問からのこのアルゴリズムはおそらく機能するようですが、そのページの内容を疑似コードなどにまとめることはできません。 私が遭遇した他のいくつかの質問スレッドは、ランダム化された均一分布について話しました。これは、気にしないレベルの複雑さを追加します。これはばかげた質問であることをお詫びしますが、私は本当に一見懸命に見ていて、まだ足りないことを示したいと思いました。 したがって、私が探しているのは、球または直交座標で返される単位球の周りにN個の点を均等に分散する単純な疑似コードです。少しのランダム化で分布さえできればなおさらです(星の周りの惑星は、まあまあ広がっていますが、余裕があります)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.