問題タブ [non-termination]

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 投票する
2 に答える
1314 参照

prolog - Prolog述語-無限ループ

自然数を使用して、2の累乗のProlog述語を作成する必要があります。自然数は次のとおりです:0、s(0)、s(s(0))ansなど。

例えば:

これは私のコードです:

そして、それは最初の例で完全に機能しますが、2番目の例では無限ループに入ります。
これを修正するにはどうすればよいですか?

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

prolog - Prologの後継表記は、不完全な結果と無限ループを生成します

私はPrologを学び始め、最初に後継表記について学びました。

そして、これは私がプロローグでペアノの公理を書くことについて知るところです。

PDFの12ページを参照してください。

掛け算のルールをPrologに入れました。次に、クエリを実行します。

つまり、基本的に6の因数を見つけることを意味します。

結果は次のとおりです。

この結果には2つの問題があります。

  1. すべての結果が表示されているわけではありません。結果X=6、Y=1が欠落していることに注意してください。
  2. Ctrl + Cを押してから中止を選択しない限り、停止しません。

だから...私の質問は:

  1. 何故ですか?「prod」と「sum」を入れ替えてみました。結果のコードは私にすべての結果を与えます。そして繰り返しますが、それはなぜですか?それでもデッドループです。
  2. それを解決する方法は?

私は無限ループに関する他の答えを読みました。しかし、私は誰かがこのシナリオに基づいて答えてくれることを感謝します。それは私を大いに助けます。

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

prolog - 文を変換すると無限ループが発生しますが、その方法は?

これがどこで間違っているのかわかりません。私は Prolog に非常に慣れていないことに注意してください。何かが欠けていると確信しています。それが何であるかはわかりません。誰か助けてくれませんか?

ありがとう、これが私のコードです:

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

list - プロローグ: 2 つのリストに同じ要素があるかどうかを確認する

私は Prolog を初めて使用し、2 つのリストにまったく同じ要素があるかどうかを確認するのに問題があります。要素が異なる順序である可能性があります。私はこのコードを持っています:

それを除いて動作します

最初の結果を返した後、メモリ不足エラーが発生します。そこで、リストの長さが等しいことを確認し、H1 が L2 のメンバーであることを確認して、結果セットを絞り込もうとしました。

今は両方

すべての結果を返しますが、最後にハングします。これを行うより良い方法はありますか?

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

android - 一般的な例外が発生したときにアプリが終了しないようにする

すべての「キャッチされていない」例外を1か所でキャッチして、アプリを続行させる方法はありますか?

setUncaughtExceptionHandlerを使用してロギングなどを実行できるようですが、アプリは引き続き終了します。例外をログに記録し、ユーザーにアクションが失敗したことを伝え、ユーザーに続行させることができるものが必要です(別のことを試してください)。

ありがとう。

0 投票する
0 に答える
286 参照

c# - DrawImage は返されません

私の同僚と私は、C# の Graphics クラスで明らかなバグに遭遇しました。このアプリケーションでは、ビットマップの上に新しいものを描画することで、時間の経過とともにビットマップを更新します。Graphics.DrawImage(Image, Rectangle) メソッドを使用すると、呼び出しが返されないか、例外がスローされることさえあります。それはあなたの誰かがよく知っている問題ですか?

ユースケースは次のとおりです。

これは、問題が発生するかなり前に定義されています。通常の呼び出しは次のようになり、「part」と「region」がネットワークから着信します。

タイムアウトを設定してみました:

「part」画像を調べてみました。通話前は問題ないようです。破棄されたりはせず、そのプロパティを取得できます。しかし、呼び出しの後、そのすべてのメンバーが InvalidOperationException をスローします。

この後もプログラムを続行すると、次の呼び出しが毎回ハングします。しばらくしてデバッガーを一時停止すると、これらの「描画」タスクがまだ待機していることをスレッド ビューで確認できます。

したがって、回避策またはこの動作を防ぐ方法を知っている場合は、助けていただければ幸いです。

直後に編集:

グラフィックス オブジェクトを調べたところ、このオブジェクトは「現在別の場所で使用されている」ため、検査できないことがわかりました。これが「全体」イメージへの唯一の参照であると考えました。画像を複製して、画像ボックスに表示することもできました。Clone について調べたところ、正しく理解できていれば、Clone は浅いコピーのみを行い、古いイメージとリソースを共有していることがわかりました。

そこで交換してみました

そして、それは私たちの問題を解決したようです. その場合、 DrawImage が例外をスローしないことはまだ問題ですが。

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

prolog - プロローグ終了ドメイン: どの質問が有限数の回答を返すかを知るにはどうすればよいですか?

次のようなリストを連結するプロローグ プログラムがあるとします。

どの質問が有限数の回答を返すかを知るにはどうすればよいですか? たとえば、

有限解セットを返します:

質問をしながら

解の無限セットを返します。

など (基本的に、[1,2,3] で終わる可能性のあるすべてのリスト。

では、論理プログラムでどの質問が終了するか、または終了しないかをどのように判断できますか?

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

prolog - 2-プロローグの水差し

私は swi-prolog で 2 水差しの問題を解決しようとしています: 容量がそれぞれ 4 ガロンと 3 ガロンの 2 つの水差しがある場合、容量 4 と 0 の水差しで 2 ガロンを取得する手順を見つけたいと思います。

bfs と dfs の両方を使用して C++ でこの問題のプログラムを作成しました: http://kartikkukreja.wordpress.com/2013/10/11/water-jug-problem/。今、私はプロローグで問題を解決しようとしています。私は言語にまったく慣れていないので、コードが終了しません。

これまでのコードは次のとおりです。

どんな助けでも大歓迎です。

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

prolog - これが無限再帰を引き起こしているのはなぜですか?

私はプロローグにこのプログラムを持っています。ここでは、基本的に人々のグラフを定義し、どの人々が関連しており、どの派閥であるかを示すいくつかの述語を作成する必要があります。事実は次のとおりです。

そして、これがクリークという名前の述語の定義です。パラメータとしてグラフ G と人物のリストを取り、リスト内の人物が実際に友人のグループであるかどうかをチェックしようとします (つまり、述語 goodfriends は、リスト内の人物の各ペアに対して真です)。

clique が行うことは、リストが 2 人だけで構成されている場合、この 2 人が仲良しかどうかをチェックすることです。これが本当なら、2人の間に派閥があります。人のリストに 2 人以上の人がいる場合、リストの先頭ごとに、つまり、リストの末尾にいる残りの人と良い友達かどうかをチェックし、それをすべてのリストに対して再帰的に行います。人。以下は、クリークが機能するための残りのヘルパー述語の定義です。

質問

述語「クリーク」をテストするために、runner という名前の述語を作成すると、次のようになります。

グラフ内のすべてのクリークを返したいのですが、結果は次のとおりです。

再帰の何が間違っていますか? 正しい結果が得られることはわかっていますが、何らかの理由で、すべての結果が再帰的に表示されます。

前もって感謝します。