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

30
1〜5から1〜7のランダムな範囲を拡大します
1から5の範囲のランダムな整数を生成する関数を指定して、1から7の範囲のランダムな整数を生成する関数を記述します。 シンプルなソリューションとは何ですか? メモリ使用量を減らす、またはより遅いCPUで実行するための効果的なソリューションは何ですか?
692 algorithm  random  puzzle 

30
文字マトリックスから可能な単語のリストを見つける方法[Boggle Solver]
最近、iPhoneでScrambleと呼ばれるゲームをプレイしています。このゲームをBoggleと知っている方もいるかもしれません。基本的に、ゲームが開始すると、次のような文字のマトリックスが得られます。 F X I E A M L O E W B X A S T U ゲームの目標は、文字をつなげて形成できる単語をできるだけ多く見つけることです。任意の文字で開始でき、その文字を囲むすべての文字は公平なゲームです。次の文字に移動すると、以前に使用された文字を除いて、その文字を囲むすべての文字が公平なゲームになります。したがって、上記のグリッドでは、例えば、私は言葉を思い付くことができLOB、TUX、SEA、FAME、などの言葉は、このゲームでは16になるだろうが、いくつかの実装が異なることができ、それ以上のN×Nの文字より少なくとも3つの文字、あってはなりません。このゲームは楽しさと中毒性がありますが、私は明らかにそれがあまり得意ではないので、可能な限り最高の単語を与えるプログラム(単語が長いほどポイントが多くなります)を作成することで少し浮気したいと思いました。 (ソース:boggled.org) 残念ながら、アルゴリズムやその効率などはあまり得意ではありません。私の最初の試みは、このような辞書(〜2.3MB)を使用し、組み合わせを辞書のエントリと一致させようとする線形検索を行います。これは、可能性のある単語を見つけるのに非常に長い時間がかかり、ラウンドごとに2分しか得られないため、単に適切ではありません。 Stackoverflowersがより効率的なソリューションを考え出せるかどうかに興味があります。私は主にBig 3 Ps:Python、PHP、Perlを使用したソリューションを探していますが、JavaまたはC ++を使用するものもクールです。 現在のソリューション: アダム・ローゼンフィールド、パイソン、〜20代 ジョン・フーイ、パイソン、〜3秒 ケントフレドリック、Perl、〜1秒 ダライアスベーコン、パイソン、〜1秒 rvarcher、VB.NET (ライブリンク)、〜1s Paolo Bergantino、PHP (ライブリンク)、〜5秒(ローカルでは〜2秒)
376 algorithm  puzzle  boggle 


30
その行または列に0が含まれている場合、行列のすべてのセルを0に設定します。
この投稿を改善してみませんか?この質問に対する詳細な回答を提供します。これには、引用と、回答が正しい理由の説明が含まれます。詳細が不十分な回答は編集または削除される場合があります。 0と1を持つNxN行列が与えられます。含まれているすべての行を設定し0、すべてに0Sをし、含まれているすべての列セット0すべてに0秒。 例えば 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 結果は 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 …

30
ドルの価値を与えられたときにコインのすべての組み合わせを見つける方法
数か月前に面接準備のために書いているコードを見つけました。 私のコメントによると、それはこの問題を解決しようとしていました: セント単位のドルの値を指定して(たとえば、200 = 2ドル、1000 = 10ドル)、ドルの値を構成するコインのすべての組み合わせを見つけます。ペニー(1nie)、ニッケル(5¢)、ダイム(10¢)、およびクォーター(25¢)のみが許可されています。 たとえば、100が指定された場合、答えは次のようになります。 4 quarter(s) 0 dime(s) 0 nickel(s) 0 pennies 3 quarter(s) 1 dime(s) 0 nickel(s) 15 pennies etc. これは反復的かつ再帰的な方法で解決できると私は信じています。私の再帰的な解決策は非常にバグが多く、他の人がこの問題をどのように解決するのか疑問に思っていました。この問題の難しい部分は、それを可能な限り効率的にすることでした。

30
プログラマーパズル:ゲーム全体でチェス盤の状態をエンコードする
厳密には質問ではなく、パズルのようなものです... 長年にわたり、私は新入社員の技術面接にいくつか携わってきました。「Xテクノロジーを知っていますか」という標準的な質問をする以外に、私は彼らが問題にどのように取り組むかについての感触を得ることも試みました。通常、面接の前日にメールで質問を送信し、翌日までに解決策が見つかると期待します。 多くの場合、結果は非常に興味深いものになります-間違っていますが、興味深いものです。その人が特定のアプローチをとった理由を説明できれば、その人は私の推奨を得るでしょう。 だから私はスタックオーバーフローの聴衆に向けて私の質問の1つを投げると思いました。 質問:チェスゲーム(またはそのサブセット)の状態をエンコードするために考えられる最もスペース効率の良い方法は何ですか?つまり、駒が合法的に配置されたチェス盤が与えられた場合、この初期状態と、ゲーム内のプレーヤーが取ったその後のすべての合法的な動きの両方をエンコードします。 答えに必要なコードはなく、使用するアルゴリズムの説明のみです。 編集:ポスターの1つが指摘したように、私は移動の時間間隔を考慮しませんでした。オプションの追加としてそれについても説明してください:) EDIT2:補足説明のために...エンコーダー/デコーダーはルールに対応していることを忘れないでください。実際に保存する必要があるのはプレーヤーの選択だけです。それ以外は、エンコーダー/デコーダーが認識していると見なすことができます。 EDIT3:ここで勝者を選ぶのは難しいでしょう:)たくさんの素晴らしい答え!
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.