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

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

2
セグメントツリー、インターバルツリー、バイナリインデックス付きツリー、レンジツリーの違いは何ですか?
セグメントツリー、インターバルツリー、バイナリインデックスツリー、レンジツリーの違いは次のとおりです。 重要なアイデア/定義 用途 より高い次元でのパフォーマンス/順序/スペース消費 単に定義を与えないでください。



9
このゲームの背後にある数学/計算の原理は何ですか?
私の子供たちには、Spot Itという楽しいゲームがあります。ゲームの制約(私が説明できる限り)は次のとおりです。 55枚のデッキです 各カードには8枚の一意の画像があります(つまり、カードに同じ画像を2枚含めることはできません) デッキから選んだカードが2枚ある場合、一致する画像は1枚だけです。 一致する画像は、カードによって異なる縮尺で表示される場合がありますが、これはゲームを難しくするためです(つまり、小さな木は大きな木と一致します)。 ゲームの原則は次のとおりです。2枚のカードを裏返し、最初に一致する画像を選んだ人がポイントを獲得します。 明確にするための画像は次のとおりです。 (例:上の2枚のカードから、一致する画像が緑の恐竜であることがわかります。右下の画像と中央右の画像の間は、ピエロの頭です。) 私は次のことを理解しようとしています: これらの基準を満たすために必要なさまざまな画像の最小数はいくつですか?これをどのように決定しますか? 疑似コード(またはRuby)を使用して、N個の画像の配列(Nは質問1の最小数)から55個のゲームカードをどのように生成しますか? 更新: 写真はデッキごとに2回以上発生します(一部の人が推測したものとは異なります)。3つのカードの写真を参照してください。それぞれに稲妻が付いています。


30
スパムボットからメールを隠す効果的な方法
私のホームページでは、この方法を使用してスパムボットからメールを隠しています。 <a href="admin [at] example.com" rel="nofollow" onclick="this.href='mailto:' + 'admin' + '@' + 'example.com'">Contact me</a> あなたはそれについてどう思いますか?効果的ですか?他にどのような方法を知っているか、使用していますか?
195 html  algorithm  email  spam 

10
Primではなく、Kruskalをいつ使用すればよいですか?
Primのアルゴリズムをいつ使用する必要があるのか​​、Kruskalがいつ最小のスパニングツリーを見つけるのかについて疑問に思っていましたか?どちらにも簡単なロジックがあり、最悪の場合は同じです。違いは、少し異なるデータ構造を含む可能性のある実装だけです。それで、決定的な要因は何ですか?

17
四捨五入したパーセンテージを合計すると100%になる方法
float数値で表された以下の4つのパーセンテージを検討してください。 13.626332% 47.989636% 9.596008% 28.788024% ----------- 100.000000% これらの割合を整数で表す必要があります。単純にを使用Math.round()すると、合計101%になります。 14 + 48 + 10 + 29 = 101 を使用parseInt()すると、合計97%になります。 13 + 47 + 9 + 28 = 97 合計として100%を維持しながら、任意の数のパーセンテージを整数として表すための適切なアルゴリズムは何ですか? 編集:コメントと回答の一部を読んだ後、これを解決するための方法は明らかにたくさんあります。 私の考えでは、数値に忠実であり続けるために、「正しい」結果は、実際の値に対してどれだけのエラー丸めが導入するかによって定義される、全体的なエラーを最小化するものです。 value rounded error decision ---------------------------------------------------- 13.626332 14 2.7% round up (14) 47.989636 48 0.0% round up (48) 9.596008 10 4.0% …

11
2つのリスト間の組み合わせ?
久しぶりに、自分が作ろうとしているアルゴリズムに頭を悩ませるのに苦労しています。基本的に、2つのリストがあり、2つのリストのすべての組み合わせを取得したいと考えています。 私はそれを正しく説明していないかもしれないので、ここに例があります。 name = 'a', 'b' number = 1, 2 この場合の出力は次のようになります。 1. A1 B2 2. B1 A2 トリッキーな部分は、「name」変数の項目が「number」変数の項目よりも多い場合があることです(番号は常にname変数以下になります)。 すべての組み合わせ(ネストされたforループ?)を実行する方法に混乱があります。また、番号リストにある項目よりも名前に項目が多い場合に、name変数の項目をシフトするロジックがさらに混乱しています。 私は最高のプログラマーではありませんが、誰かがロジック/アルゴリズムを明確にしてこれを達成するのを手伝ってくれるなら、私はそれを試してみることができると思います。だから私はネストされたforループで立ち往生しているところです。 更新: これは、3つの変数と2つの数値の出力です。 name = 'a', 'b', 'c' number = 1, 2 出力: 1. A1 B2 2. B1 A2 3. A1 C2 4. C1 A2 5. B1 C2 6. C1 B2

30
バイナリツリーで2つのノードの最も低い共通祖先を見つける方法は?
ここでのバイナリツリーは、必ずしもバイナリ検索ツリーであるとは限りません。 構造は次のように解釈できます- struct node { int data; struct node *left; struct node *right; }; 友人と一緒に解決できる最大の解決策は、このようなものでした- この二分木を 考えてみましょう: 順序トラバーサルの利回り-8、4、9、2、5、1、6、3、7 そして、ポストオーダートラバーサルイールド-8、9、4、5、2、6、7、3、1 したがって、たとえば、ノード8と5の共通の祖先を見つけたい場合は、順序木走査で8と5の間のすべてのノードのリストを作成します。この場合、[4、9 、2]。次に、このリストのどのノードがポストオーダートラバーサルの最後に表示されるか(2)を確認します。したがって、8と5の共通の祖先は2です。 このアルゴリズムの複雑さは、O(n)(インオーダー/ポストオーダートラバーサルではO(n)、残りのステップは配列の単純な反復にすぎないため、残りのステップもO(n)である)と私は信じています。しかし、これが間違っている可能性が高いです。:-) しかし、これは非常に大雑把なアプローチであり、いくつかのケースで失敗するかどうかはわかりません。この問題に対する他の(おそらくより最適な)解決策はありますか?

30
数値の配列を指定すると、他のすべての数値の積の配列を返します(除算なし)
この質問は就職の面接で尋ねられました。他の人がそれをどのように解決するか知りたいのですが。私はJavaに最も慣れていますが、他の言語のソリューションも歓迎します。 数値の配列を指定するとnums、は数値の配列を返しますproducts。ここproducts[i]で、はすべての積ですnums[j], j != i。 Input : [1, 2, 3, 4, 5] Output: [(2*3*4*5), (1*3*4*5), (1*2*4*5), (1*2*3*5), (1*2*3*4)] = [120, 60, 40, 30, 24] O(N)除算を使用せずにこれを行う必要があります。
186 arrays  algorithm 


27
数値の最大素因数を見つけるアルゴリズム
数の最大の素因数を計算するための最良のアプローチは何ですか? 私は最も効率的なものは次のようになると思います: きれいに割れる最小の素数を見つける 除算の結果が素数かどうかを確認します そうでない場合は、次に低いものを見つける 2に進みます。 この仮定は、小さな素因数を計算する方が簡単であることに基づいています。これで大丈夫ですか?他にどのようなアプローチを検討する必要がありますか? 編集:結果が他の2つの素数の積であるときにステップ2が失敗するため、再帰アルゴリズムが必要であるため、2つ以上の素因数が存在する場合、私のアプローチは無駄であることがわかりました。 もう一度編集します。最後に見つかった素数が最も大きい必要があるため、これでも機能することに気づきました。したがって、ステップ2からの素数以外の結果をさらにテストすると、素数が小さくなります。


11
トレンドのトピックやタグを計算する最良の方法は何ですか?
多くのサイトは、「過去24時間で最もホットなトピック」などの統計を提供しています。たとえば、Topix.comのセクション「ニューストレンド」ではこれを示しています。そこでは、言及の数が最も急増しているトピックを見ることができます。 トピックについてもこのような「バズ」を計算したいと思います。どうすればこれができますか?アルゴリズムは、常にホットなトピックに重みを付ける必要があります。通常(ほとんど)誰も言及しないトピックは、最もホットなものでなければなりません。 Googleは「ホットトレンド」を提供し、topix.comは「ホットトピック」を示し、fav.or.itは「キーワードトレンド」を示します。これらのサービスにはすべて1つの共通点があります。 「Britney Spears」、「weather」、「Paris Hilton」などの用語は、常に暑くて頻繁であるため、これらのリストには表示されません。この記事では、これを「ブリトニースピアーズ問題」と呼んでいます。 私の質問:どのようにしてアルゴリズムをコーディングするか、または既存のアルゴリズムを使用してこの問題を解決できますか?過去24時間に検索されたキーワードのリストがあれば、アルゴリズムは(たとえば)最もホットな10個を表示するはずです。 上記の記事では、ある種のアルゴリズムについて言及しています。私はそれをPHPでコーディングしようとしましたが、うまくいくとは思いません。過半数を見つけるだけですよね。 あなたが私を助けてくれることを願っています(コーディング例は素晴らしいでしょう)。

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