問題タブ [logic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
15 に答える
26844 参照

language-agnostic - 「シマウマの所有者」をプログラムで解決しますか?

編集: このパズルは「アインシュタインのなぞなぞ」としても知られています

The Who owns the Zebra (ここでオンライン バージョンを試すことができます) は古典的なパズル セットの例であり、Stack Overflow のほとんどの人はペンと紙で解決できるに違いありません。しかし、プログラマティック ソリューションはどのようなものになるでしょうか。

以下の手がかりに基づいて...

  • 家が5軒あります。
  • 各家には独自の色があります。
  • 家の所有者はすべて異なる国籍です。
  • 彼らはすべて異なるペットを飼っています。
  • 彼らはすべて異なる飲み物を飲みます。
  • 彼らは皆違うタバコを吸っている。
  • そのイギリス人男性は赤い家に住んでいます。
  • スウェーデン人は犬を飼っています。
  • デーンはお茶を飲みます。
  • 緑の家は白い家の左側にあります。
  • 彼らは温室でコーヒーを飲みます。
  • ポール・モールを吸う男は鳥を飼っている.
  • 黄色い家では、彼らはダンヒルを吸っています。
  • 真ん中の家では牛乳を飲みます。
  • ノルウェー人は最初の家に住んでいます。
  • ブレンドを吸っている男性は、猫がいる家の隣の家に住んでいます。
  • 馬を飼っている隣の家ではダンヒルを吸っている。
  • ブルーマスターを吸う男はビールを飲む。
  • ドイツ人はプリンスを吸う。
  • そのノルウェー人は青い家の隣に住んでいます。
  • 彼らはブレンドを吸う家の隣の家で水を飲みます。

...ゼブラの所有者は誰ですか?

0 投票する
3 に答える
375 参照

.net - 定期的なジョブまたはタスクの実行時間を指定する最良の方法は何ですか?

明示的な実行時間をデータストアに書き込むことなく、定期的なジョブの実行時間を効率的に指定する方法を探しています。言い換えれば、「次のジョブ x は 11.12.08 の午後 13 時に実行されます」と言って、ジョブが実行されたら次の週の実行時間を更新しなければならないのではなく、「ジョブ x は次の時間に実行されます」と言うことができるようにしたいのです。毎週木曜日の午後13時。数分から 1 か月に 1 回まで、繰り返しの範囲を指定できる必要があります。私の推測では、再発期間が短いほど、これは難しくなります。何か案は?

注: スケジューリングメカニズムに関するアドバイスを求めているわけではありません。Windows スケジューラ、Cron を使用したり、Windows サービスを作成したりできません (ASP.NET でバックグラウンド スレッドを使用するしかありません)。

0 投票する
3 に答える
2100 参照

php - PHP での Web クローラー リンク/ページ ロジック

PHP でページを単純にキャッシュする基本的なクローラーを作成しています。

get_file_contentsWebページのコンテンツを取得するために使用し、正規表現を使用してすべてのリンクを取得するだけです<a href="URL">DESCRIPTION</a>-現時点では次のように返されます:

私が抱えている問題は、ページ リンクがローカルかどうかを判断する背後にあるロジックを理解すること、または完全に異なるローカル ディレクトリにある可能性があるかどうかを判断することです。

組み合わせはいくつでも可能です:href="../folder/folder2/blah/page.html"またはhref="google.com"またはhref="page.html"- 可能性は無限大です。

これにアプローチする正しいアルゴリズムは何でしょうか? 重要なデータを失いたくありません。

0 投票する
11 に答える
14115 参照

artificial-intelligence - ファジー論理とは

私は学校でいくつかの AI アルゴリズムを扱っていますが、いくつかのケースで解決できる状況を説明するために人々がファジー ロジックという言葉を使用していることに気づきました。本に戻ると、状態がオンからオフになるのではなく、対角線であり、何かが両方の状態にあるが異なる「レベル」にある可能性があることについて読んだばかりです。

ウィキペディアのエントリといくつかのチュートリアルを読み、さらに「ファジー ロジックを使用する」プログラム (エッジ検出器と 1 輪自動制御ロボット) を読みましたが、それでも理論からコードに移行するのは非常に混乱していると思います.. . あなたにとって、より単純な定義では、ファジー ロジックとは何ですか?

0 投票する
2 に答える
366 参照

php - API/関数呼び出しを使用するか、Cron ジョブ アプローチを使用する - トランザクションの処理に関する問い合わせ - どのように処理しますか?

おおよそ次のようなPHPとMySQLを使用して新しいプロジェクトを開始しています。

毎分、さまざまなユーザーの API から To Do トランザクションのリストを取得しています。

例:

user1 が $1 を user2 に送りたいとします。成功するか、資金が不足しているか、ユーザーのスペルが間違っているために失敗するかの 2 つの可能性があります。失敗した場合は、ユーザーにメッセージを送信します。

私は今、いくつかの選択肢に直面しています:

オプション1

処理が必要なトランザクションを含むデータベース テーブルを作成し、それらを毎分処理する cronjob を使用します。ここでのリスクは、スクリプトがエラーまたはタイムアウトに対して実行される可能性があり、他のトランザクションがデータベース テーブルで進行中と表示される可能性があることです。そのため、タイムスタンプと照合するための 2 つ目のスクリプトが必要になります。

オプション 2

トランザクションを受け取った後にトランザクションごとに呼び出され、応答を返す API または関数を作成します。そこから別の API または関数を呼び出して、その応答を処理するか、次のトランザクションに進むことができます。ただし、スクリプトの実行が停止した場合にそれらを失う危険がないため、それらをデータベース テーブルに配置する必要があります。したがって、次のように機能します。すべてのトランザクションをデータベーステーブルに入れます-トランザクションを開始します-トランザクションが終了したらテーブルから削除します-トランザクション2を開始します.


トランザクションのリストがどれくらい長くなるかわからないため、どちらのオプションにも欠陥があります。長い場合、PHP を長時間実行するのは最適ではありません。set timeout をゼロに設定するのは危険です。PHPで拡張できるソリューションを作成しようとしています。そこで、オプション 3 を考えていました。


オプション 3 (最適なソリューション?)

API を使用して 10 件のトランザクションを返します。

データベースで、スクリプトに送信されたことを示すフラグと、送信された時刻を示すタイムスタンプを設定します

PHP スクリプトは API から 10 個のトランザクションを取得します - 10 個のトランザクションを処理します。

トランザクションが完了したら、このテーブルから削除し、完了したトランザクション テーブルにコピーします。

timesent が X 分 (10 トランザクションの実行時間の上限に基づく) よりも大きい場合、cronjob スクリプトで 3 分ごとにチェックします。大きい場合は、送信しないように設定して、再度送信できるようにします。


ご覧のとおり、これに関する私の思考プロセス全体を書き留めて、意見を求めています。私が見逃したものがあるはずです。また、これらは実際の金融取引ではないことに注意してください。これは、明確にするために私が使用できる最良のメタフォーです。

0 投票する
3 に答える
634 参照

php - PHP/RegEx - テーブル名を先頭に追加するためのロジック

そのため、有効な列名に適切なテーブルプレフィックス (「t.」または「r.」など) を自動的に追加するスクリプトを作成しようとしています。

入力:

出力:

通常のstr_replaceを実行できないことに注意してください。すべてのテーブル名が適切に先頭に追加されるようにするための最も単純なコード (私はpreg_replaceと推測しています) は何でしょうか?

0 投票する
10 に答える
550 参照

php - 論理演算子: AND は OR より優れていますか?

これがcomp-sci 101の質問である場合は申し訳ありません。明らかな何かが欠けているかどうかはわかりません。

たとえば、一部のユーザー入力でエラーがスローされた場合、それをキャッチしてフィードバックを返したいとします。エラーは 0 ~ 8 の数値になります。0 は「エラーなし」を意味します。エラーが 3 の場合は、ユーザーに非常に具体的なフィードバックを提供したいと考えています (数字は許可されていません)。他の 7 つの可能性については、スクリプトを終了してエラーをエコーし​​たいだけです。

私はこれを解決していて、これで行くことにしました:

とにかく、最初の行の OR 演算子に気付き、AND 演算子を使用する方が安全であると考えていました。しかし、考えれば考えるほど、違いが見えなくなります。

したがって、本当の問題は、特定の変数の 2 つの可能性を排除したい場合、AND と OR は同一であるか、論理的/機能的に最適な方であるかということです。

0 投票する
9 に答える
8110 参照

logic - 人々が論理を学ぶのをどのように助けますか?

IT 以外の人、より具体的にはプログラマーは、問題を解決する良い方法を持っていません。彼らは単に、私たちプログラマーのように論理的に物事を考えていないのです。日々の専門的な問題に最終的に役立つ論理を改善するために何を勧めるかを何度も尋ねられました. 頭に浮かぶのは、良いパズル、数学の問題などです。

そうは言っても、何をお勧めしますか、そしてその理由は何ですか? 書籍、サイト、記事 ?

0 投票する
1 に答える
1779 参照

logic - このデジタル ロジックを Verilog または VHDL でどのように実装しますか?

FPGA にプログラムできるように、いくつかのデジタル ロジックを Verilog または VHDL で実装する必要がある別の stackoverflow の質問への回答を投稿しました。

次のロジック ダイアグラムを Verilog、VHDL、またはその他のハードウェア記述言語でどのように実装しますか?

番号付きのボックスは、フィールド内のビットを表します。各フィールドにはKビットがあり、現在のビットとマスクのビットはコンピュータ システムによって提供されます (ラッチ レジスタまたは同等のものを使用)。のビットは、同じコンピューター システムに読み戻されます。

代替テキスト http://img145.imageshack.us/img145/5125/bitshifterlogicdiagramkn7.jpg

参照:このスタックオーバーフローの質問

0 投票する
2 に答える
7129 参照

math - MixColumnsステップの誤解

ここで説明するMixColumnsステップの理解に問題があります。

私は拡散について知っていますが、各列が多項式として扱われ、GF(2 ^ 8)を法として乗算されるという点ですべてが理にかなっています。

しかし..GF(2 ^ 8)で乗算します。ドメインはまだ同じですが、modのために元に戻すことはできません。それが全体のポイントであるため、元に戻す必要があります。

最初のビットに関しては、私のアプローチは、A、B、C、およびDを列の4バイトとして、A1、A2、...、A8をビットとして、E、F、G、およびHを出力として使用することです。バイト。設定するつもりでした

したがって、それは可逆的で、1対1で、線形で分配的です。

後で、行列の乗算と見なすことができると述べていますが、行列の要素はバイトであり、バイトとして出力される必要があるため、行列の各要素はモジュロ256である必要があり、したがって可逆で非線形ではありません。

私はこれを間違って理解しましたか?私は数学に苦労していて、それを論理に変換できるようにするために何をする必要があるかを理解しようとしています。