問題タブ [magic-square]

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 に答える
739 参照

memory - erlang で魔方陣を生成するときのメモリ消費量が多すぎる - 最適化の助けが必要

大学では、特定の辺の長さと特定の合計に対して可能なすべての魔方陣を作成するアルゴリズムを実装する必要があります。n=3 の場合、アルゴリズムは期待どおりに機能しています。しかし、しばらくして n=4 のすべての魔方陣を生成すると、メモリが不足しました。この問題は、タスクの説明で既に言及されています。すでにコードを最適化しようとしましたが、まだ正常に機能していません。ですから、誰かが私にアドバイスをくれることを願っています。

私の基本的な考え方は次のとおりです。最初に、指定された数値で使用できるすべての可能な行を生成し、魔方陣の制限が満たされるようにこれらを結合しようとしています。これは、バックトラッキングによって発生します。makeRows問題は、すべての行を格納するためにしばらくするとメモリを消費しすぎる関数だと思います。

コードの説明がさらに必要な場合は、私が提供できます。

わかりました、計算プロセスの早い段階で行と正方形のチェックを追加しようとしました。変更された機能は次のとおりです。

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

algorithm - すでにいくつかの数字が埋められている魔方陣を作成する方法は?

私はこれをしたいと思います: 私は行列 N x N を持っています。これには 1 から n^2 までの数値を含めることができます。この行列には、正の数で満たされたいくつかのセルがあります。この既に満たされた行列は、魔法の行列 (魔方陣) になる可能性があると判断する必要があります。例えば:

この行列から魔方陣を作成できます。これを決定するアルゴリズムはありますか?何かお勧めできますか?ありがとう!

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

java - 魔方陣プログラムのヘルプ (Java)

これは、2D 配列を扱う AP コンピューター サイエンス クラスの宿題です。基本的に、プログラムは魔方陣に値を入力し (すべての行、列、および対角線の合計が同じ数になります)、それが魔方陣であるかどうかを判断します。私のアルゴリズムは、Magic かどうかをチェックするときに、(isMagic() メソッドに従って) false を出し続けます。row() および column() メソッドに問題があると思います。誰かが私に解決策を提供してくれれば、それは素晴らしいことです。

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

math - スキームの魔方陣

私はまだSchemeに不慣れで、call/ccとamb演算子を使用して魔方陣を解こうとしています。現在、印刷中です:

なぜそれらの数字だけを使っているのか理解できません。それは私の区別ですか?手順?これが私のコードです:

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

java - 最適化の助けが必要-Javaで魔方陣を生成する

与えられたエッジの長さ(n = 3,4)に対して可能なすべての魔方陣を作成するアルゴリズムを実装する必要があります。n = 3の場合、アルゴリズムは正常に機能します。ただし、n = 4の場合、アルゴリズムは最適ではない(遅すぎる)ため、結果は得られません。アルゴリズムを最適化しようとしましたが、それでも正常に機能していません。どんな助けでも大歓迎です。

}

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

c++ - C ++で3次元配列をシャッフルする

3D 配列を作成し、1 ~ 9 を 3x3x3 ボックスに配置するこのコードがあります。この配列の要素をシャッフルして、新しくシャッフルされた配列が魔方陣にどれほど近いかを比較する方法を見つける必要があります。どんなアイデアでも大歓迎です!ありがとう!

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

pascal - 魔方陣フリーパスカル

プログラムは、正方形が魔方陣であるかどうかを出力する必要があります。

ファイルから正方形を読み取る必要があります。

魔方陣 - すべての行、すべての列、および両方の対角線の合計が等しくなければなりません。

プログラムは正解を示しますが、これらの 16 個の数字はテキスト ファイルから読み取る必要があります。

テキストファイルは次のようになります。

プログラム自体:

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

c++ - 魔方陣の確認

16 個の数字のセットを取り込んで 4x4 のグリッドに出力するプログラムがあります。次に、各行、列、および対角線の合計が同じ数になることを確認する必要がありますが、それがどのように機能するかがわからないため、この部分を実行できません。誰でも助けることができますか?

現在のコード:

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

c - 魔方陣をブルートフォースするスタック オーバーフロー エラー。可能な解決策はありますか?

ここで私の問題です。演習では、バックトラックでブルートフォースして魔方陣を生成する必要があります。

行列をベクトルと座標を変更する関数として割り当てると便利だと思いました。ご想像のとおり、3x3 の魔方陣でもスタック オーバーフローの問題が発生しました。

それをデバッグすると、多かれ少なかれ、生成の半分、より正確には関数chk_magic(int *m, int n)呼び出しの場所で発生することがわかりましたchange_coord(i, j, m, n);

これは、プログラムを中断する行に署名したコード全体です。

グーグルで調べてみると、奇数の場合は簡単に生成するアルゴリズムがあることがわかりましたが、偶数の場合は問題が解決しません(さらに、私の教授はブルートフォース再帰でそれを望んでいます)。

可能な解決策はありますか?

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

java - これは、魔方陣 Java プログラムのこのコードの論理エラーですか?

nxn 行列を作成し、その行列が魔方陣かどうかをチェックするプログラムを作成しました。私のメソッド magicCheck では、すべての要素が合計 (sum) され、n (行または列の数) で除算されて、magicNumber が生成されます。この magicNumber を使用して、各行、列、および対角線の合計を個別に比較して、それらが一致するかどうかを確認します。プログラムは正常に動作しますが、魔方陣であるべき数字を入力すると、プログラムは魔方陣ではないと言います。コードの順序に誤りがありますか、それとも数学で何かを見逃していますか?