Hallo erstmal.... und c++ code in Mathematica??
-
hallo allerseits,
leider bin ich des C++ coden nicht so wirklich mächtig (nur basics) und in Mathematica total der Versager

trotzdem möchte ich eine Hausarbeit abgeben in der ich in Mathematica einen Sudokusolver programmieren muss
da mathematica ja auch c++ befehle annimmt dachte ich mir ... nimmst einfach nen c++ code... denkste
kann mir jemand helfen dieses kunststück zu vollenden??
hier der code
------------------
#include <iostream>
using namespace std;int start[9][9] =
{
{ 0, 0, 6, 9, 0, 4, 7, 0, 1 },
{ 3, 1, 9, 0, 2, 0, 0, 0, 0 },
{ 0, 0, 0, 1, 5, 0, 0, 6, 2 },
{ 2, 0, 4, 0, 0, 0, 5, 0, 9 },
{ 7, 6, 0, 4, 0, 0, 0, 2, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 4 },
{ 0, 8, 0, 0, 0, 7, 0, 4, 0 },
{ 0, 0, 0, 0, 0, 8, 0, 9, 5 },
{ 0, 0, 2, 0, 0, 0, 3, 0, 0 }
};bool isfine(int feld[9][9], int x, int y)
{
// doppelte Zahl in Zeile oder Spalte?
for (int yi = 0; yi < 9; yi++)
if (yi != y && feld[x][yi] == feld[x][y])
return false;
for (int xi = 0; xi < 9; xi++)
if (xi != x && feld[xi][y] == feld[x][y])
return false;// Neuner-Kästchen-Test
int x1 = (x / 3) * 3;
int y1 = (y / 3) * 3;
for (int xk = x1; xk < x1 + 3; xk++)
for (int yk = y1; yk < y1 + 3; yk++)
if ((xk != x || yk != y) && feld[xk][yk] == feld[x][y])
return false;return true;
}bool nextone(int feld[9][9], int x, int y)
{
if (y == 9) { y = 0; x++; };
if (x == 9) return true;if (feld[x][y] > 0)
{
if (!isfine(feld, x, y)) return false;
return nextone(feld, x, y + 1);
}
else for (feld[x][y] = 1; feld[x][y] <= 9; feld[x][y]++)
{
if (!isfine(feld, x, y)) continue;
if (nextone(feld, x, y + 1)) return true;
}
feld[x][y] = 0;
return false;
};int main(int argc, char **argv)
{
if (nextone(start, 0, 0))
{
for (int x = 0; x < 9; x++)
{
for (int y = 0; y < 9; y++)
cout << start[x][y];
cout << endl;
}
}
else
cout << "Dieses Rätsel ist nicht lösbar!" << endl;getchar();
return 0;
}
-----------------im c++ compiler funktioniert das bestens...
aber wie bringt man sowas in Wolframs Mathematica zum laufen??
wäre für Hilfe dankbar
edit: andere lösungen/codes in mathematica die den selben zweck erfüllen sind mir natürlich auch recht


Mfg
-
Dieser Thread wurde von Moderator/in Jester aus dem Forum Mathematik in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
http://reference.wolfram.com/mathematica/guide/CLanguageInterface.html
ich glaube aber nicht das dein lehrer damit zufrieden ist, wenn du aus mathematica einfach eine c++ library aufrufst. so schwierig ist es nicht das in mathematica umzusetzen, versuch es doch erstmal und frag wieder wenn du es nicht hinbekommst und konkrete fragen zu mathematica hast.
-
hmm... also soweit ich das verstanden habe können wir c++ benutzen
als tipp steht inder aufgabe
"wichtige mathematica-befehle: integer, Table, random, if, for, deletecases, do, append, print
wie gesagt.... in mathematica bin ich ne totale niete... und eiegntlcih werde ich es auch nach dieser hausarbeit nicht mehr brauchen..
deswegen wäre ich für lösungswege sehr dankbar
:xmas1:
edit: "sudokusolve" dürfen wir leider net benutzten
....edit2: genau DIESEN code in mathematica einfügen wollte ich eigentlich net... ich dachte eigentlich das man in mathematica mit kleineren änderungen ein normales notebook daraus machen kann

-
skalar schrieb:
ich dachte eigentlich das man in mathematica mit kleineren änderungen ein normales notebook daraus machen kann

ja dann auf! eine liste der befehle die du dafür brauchst hast du ja schon. mathematica hat eine wirklich gute doku, wenn du dich dort eingearbeitet hättest und sofort angefangen hättest, anstatt dich in mehreren foren (http://www.matheraum.de/read?t=339972) anzumelden und zu fragen ob jemand für dich deine hausaufgaben macht, wärst du schon fertig.