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

14
ゲーム2048に最適なアルゴリズムは何ですか?
私は最近2048年のゲームに遭遇しました。類似のタイルを4つの方向のいずれかに移動して結合し、「より大きな」タイルを作成します。移動するたびに、新しいタイルが空の位置にランダムに表示され、2またはのいずれかの値が表示されます4。すべてのボックスがいっぱいになり、タイルをマージできる動きがないか、値がのタイルを作成すると、ゲームは終了します2048。 1つは、明確に定義された戦略に従って目標を達成することです。それで、そのためのプログラムを書くことを考えました。 私の現在のアルゴリズム: while (!game_over) { for each possible move: count_no_of_merges_for_2-tiles and 4-tiles choose the move with a large number of merges } 私がやっていることは、いつでも、タイルを値2とマージしようとする4ことです。つまり、2と4タイルを最小限にしようとしています。この方法で試してみると、他のすべてのタイルが自動的にマージされており、戦略は良いようです。 しかし、実際にこのアルゴリズムを使用すると、ゲームが終了するまでに約4000ポイントしか得られません。最大点AFAIKは20,000ポイントをわずかに超えており、私の現在のスコアよりもはるかに大きいです。上記よりも良いアルゴリズムはありますか?


14
「ゼブラの所有者」をプログラムで解決するには?
編集:このパズルは「アインシュタインの謎」としても知られています ゼブラを所有している人(あなたがすることができ、ここでオンライン版を試してみてください)スタックオーバーフロー上のほとんどの人がペンと紙でそれを解決することができるというパズルとIベットの古典的なセットの例です。しかし、プログラムによるソリューションはどのように見えるでしょうか? 以下の手がかりに基づいて... 5つの家があります。 各家には独自の色があります。 すべての家の所有者は異なる国籍です。 彼らはすべて異なるペットを飼っています。 彼らはすべて別の飲み物を飲みます。 彼らはみんな違うタバコを吸います。 イギリス人は赤い家に住んでいます。 スウェーデン人は犬を飼っています。 デーンはお茶を飲みます。 温室は白い家の左側にあります。 彼らは温室でコーヒーを飲みます。 ポールモールを吸う男には鳥がいます。 黄色い家で彼らはダンヒルを吸います。 真ん中の家では牛乳を飲みます。 ノルウェー人は最初の家に住んでいます。 ブレンドを吸う男は猫のいる家の隣の家に住んでいます。 彼らは馬を飼っている家の隣の家で、ダンヒルを吸っています。 ブルーマスターを吸う男はビールを飲みます。 ドイツ人は王子を吸います。 ノルウェー人は青い家の隣に住んでいます。 彼らはブレンドを吸う家の隣の家で水を飲みます。 ...ゼブラの所有者は誰ですか?

3
PHPでの型変換と(厳密な)大なり/小なり比較
PHPは型ジャグリングで有名です。私はそれが私を困惑させることを認めなければなりません、そして私は比較で基本的な論理的/基本的なものを見つけるのに苦労しています。 例:Ifは$a > $btrueで、$b > $c真のですが、それはそれが意味する必要があります$a > $cあり、常にあまりにも本当? 基本的なロジックに従って、私はイエスと言いますが、私はこれに本当にPHPを信頼していません。たぶん、誰かがこれが当てはまらない例を提供できますか? また、私は厳密な小なり演算子と大なり演算子(それらの意味は過去に等価比較からのみ知っていたものとして説明されているので)で左右のオペランドが入れ替えられた場合に違いがあるかどうか疑問に思っています厳密に等しくない値: # Precondition: if ($a === $b) { throw new Exception( 'Both are strictly equal - can not compare strictly for greater or smaller' ); } ($a > $b) !== ($b > $a) ほとんどすべてのタイプ比較の組み合わせでは、これらの大小比較演算子は文書化されていないため、この場合はマニュアルを読んでもあまり役に立ちませんでした。

2
Pythonの単純な「if」または論理ステートメント[終了]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 4ヶ月前に閉鎖。 この質問を改善する Pythonでは次のように書きますか? if key < 1 or key > 34: 私は考えられるあらゆる方法を試してみましたが、非常にイライラしていると感じています。


9
((a +(b&255))&255)は((a + b)&255)と同じですか?
私はいくつかのC ++コードを閲覧していて、次のようなものを見つけました: (a + (b & 255)) & 255 ダブルANDに悩まされたので、次のように考えました。 (a + b) & 255 (aおよびb32ビットの符号なし整数です) 私はすぐに私の理論を確認するためのテストスクリプト(JS)を書きました。 for (var i = 0; i < 100; i++) { var a = Math.ceil(Math.random() * 0xFFFF), b = Math.ceil(Math.random() * 0xFFFF); var expr1 = (a + (b & 255)) & 255, expr2 = …
92 c++  binary  logic 

2
直観主義型理論に相当するコンビネータ論理とは何ですか?
私は最近、HaskellとAgda(依存型関数型プログラミング言語)を取り上げた大学のコースを修了しましたが、これらのラムダ計算をコンビネータ論理に置き換えることができるかどうか疑問に思いました。Haskellでは、これはSおよびKコンビネータを使用して可能であるように思われるため、ポイントフリーになります。アグダに相当するものは何だろうと思っていました。つまり、変数を使用せずに、依存型の関数型プログラミング言語をAgdaと同等にすることはできますか? また、どういうわけか定量化をコンビネータに置き換えることは可能ですか?これが偶然かどうかはわかりませんが、たとえば全称記号を使用すると、型シグネチャがラムダ式のように見えます。意味を変えずに型シグネチャから全称記号を削除する方法はありますか?例: forall a : Int -> a < 0 -> a + a < a フォラルを使わなくても同じことが表現できますか?


10
ifステートメントの複数の値に対するJQuery.hasClass
私はそのような単純なifステートメントを持っています: if ($('html').hasClass('m320')) { // do stuff } これは期待どおりに機能します。ただし、にクラスを追加if statementして、<html>タグにクラスが存在するかどうかを確認したいと思います。私はそれが必要なので、それらすべてではなく、少なくとも1つのクラスが存在するだけですが、それ以上になることもあります。 私のユースケースは、さまざまなビューポート幅にクラス(たとえばm320、m768)を追加しているため、特定の幅(クラス)の場合にのみ特定のJqueryを実行したいというものです。 これが私がこれまでに試したことです: 1.1。 if ($('html').hasClass('m320', 'm768')) { // do stuff } 2.2。 if ($('html').hasClass('m320')) || ($('html').hasClass('m768')) { // do stuff } 3.3。 if ($('html').hasClass(['m320', 'm768'])) { // do stuff } しかし、これらはどれも機能していないようです。私が間違っていることはわかりませんが、おそらく私の構文または構造です。


4
自然言語からC ++式へ
割り当て: 以下の自然言語式をC ++式に変換します。すべての変数が負でない数値またはブール値(値trueまたはfalse)であると仮定します。 自然言語: aとbの両方が偽であるか、cが真であるが、両方ではない。 私の解決策: (a==0 && b==0)xor(c==1) 教授のソリューション: (!a && !b) != c 質問: 「not-a」と「not-b」と言って、最初の括弧を少し理解したと思います。abが最初はゼロ以外であると仮定すると、aとbは間違っていると思います。正しい? しかし、「cに等しくない」と言っている部分はどうでしょうか。 教授の解決策が理解できません。誰かが私のために解決できますか? お手伝いありがとう!
9 c++  logic 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.