محیط ویژال سی پلاس پلاس (کنسول) طبق تصمیمات جدید مبنی بر اینکه خیلی از دوستان با محیط توربو مشکل داشتن تصمیم گرفته شد بخشی از فیلم های سی پلاس پلاس را داخل ویژال بزنیم تا مشکل دوستان حل بشه امیدوارم مفید باشه ، به امید موفقیت همه ایرانیان http://www.heilton.com/pages/PageDownloadFilm.aspx?ID=2HbWsvBBPlQNNk/zw4ExoIrY+vfZ22ZgCXXzoJ6X5OZmsWOTMHg0c2a1BhfO5KJX1N+B4fSB3lDi+BxmBpELIQ==&Lan=+Yfj2158jfB2VGIofCGhrudn66SeKJENVpcs/PhXp2V3T2fSr/tpjh77QMilAa7TAgNv3K1l7TY3blUaAJ096A==
http://www.aparat.com/v/rXSw3 آموزش اندروید
آپارات - سرویس اشتراک ویدیو
آموزش اندروید به زبان فارسی
آموزش اندروید به زبان فارسی تمامی فیلم های کانال با کیفیت بالا و رایگان فقط از طریق سایت Heilton.com قابل دانلود است.
اموزش برنامه نویسی جاوا, آموزش برنامه نویسی اندروید, آموزش برنامه نویسی سی شارپ, دانلود, لینک مستقیم,آموزش برنامه نویسی نرم افزار…
اموزش برنامه نویسی جاوا, آموزش برنامه نویسی اندروید, آموزش برنامه نویسی سی شارپ, دانلود, لینک مستقیم,آموزش برنامه نویسی نرم افزار…
Forwarded from Deleted Account
# include <assert.h>
# include <stdio.h>
# define MAXSIZE 8
class EightQueens
{
int m_size;
int m_solution_count;
int m_attempt_count;
int m_queen[MAXSIZE];
bool m_row_inuse[MAXSIZE];
bool m_diag_rise[MAXSIZE*2];
bool m_diag_fall[MAXSIZE*2];
public:
EightQueens(int size, bool is_alt) {
assert(size <= MAXSIZE);
m_size = size;
m_solution_count = ۰;
m_attempt_count = ۰;
for (int i = 0; i < m_size; i++) {
m_queen[i] = i;
m_row_inuse[i] = ۰;
}
for (int j = 0; j < m_size*2; j++) {
m_diag_rise[j] = ۰;
m_diag_fall[j] = ۰;
}
if (is_alt) SearchAlt(0);
else Search(0);
}
int GetSolutionCount() {
return m_solution_count;
}
int GetAttemptCount() {
return m_attempt_count;
}
private:
void SearchAlt(int col){
if (col == m_size) {
m_solution_count++;
return;
}
for (int row = 0; row < m_size; row++) {
m_attempt_count++;
if (m_row_inuse[row] == 0 && IsDiagValid(col, row)) {
m_queen[col] = row;
m_row_inuse[row] = ۱;
SetDiags(col, 1);
SearchAlt(col+1);
SetDiags(col, 0);
m_row_inuse[row] = ۰;
m_queen[col] = -۱;
}
}
}
void Search(int col) {
if (col == m_size) {
m_solution_count++;
return;
}
for (int i = col; i < m_size; i++) {
if (SwapQueenIfDiagValid(col, i)) {
Search(col+1);
UnSwapQueen(col, i);
}
}
}
void SwapQueenBasic(int i, int j) {
int hold = m_queen[i];
m_queen[i] = m_queen[j];
m_queen[j] = hold;
}
void SetDiags(int col, int val) {
assert(m_diag_rise[m_queen[col] + col]!= val);
m_diag_rise[m_queen[col] + col] = val;
assert(m_diag_fall[m_queen[col] - col + m_size]!= val);
m_diag_fall[m_queen[col] - col + m_size] = val;
}
bool IsDiagValid(int col, int row) {
return (m_diag_rise[row + col] == ۰ &&
m_diag_fall[row - col + m_size] == ۰);
}
bool SwapQueenIfDiagValid(int i, int j) {
m_attempt_count++;
if (IsDiagValid(i, m_queen[j])) {
SwapQueenBasic(i, j);
SetDiags(i, 1);
return true;
}
return false;
}
void UnSwapQueen(int i, int j) {
SetDiags(i, 0);
SwapQueenBasic(i, j);
}
};
void
do_work(bool is_alt)
{
int size = ۸;
EightQueens puzzle(size, is_alt);
int soln = puzzle.GetSolutionCount();
int attempt = puzzle.GetAttemptCount();
assert(size!= ۸ || soln == ۹۲);
const char* style = is_alt ? "cartesian": "permutation";
printf("EightQueens[%d] has %d solutions found in %5d attempts using %s search. \n", size, soln, attempt, style);
}
int main()
{
printf("We should have 92 solutions for 8x8. \n");
do_work(0);
do_work(1);
}
# include <stdio.h>
# define MAXSIZE 8
class EightQueens
{
int m_size;
int m_solution_count;
int m_attempt_count;
int m_queen[MAXSIZE];
bool m_row_inuse[MAXSIZE];
bool m_diag_rise[MAXSIZE*2];
bool m_diag_fall[MAXSIZE*2];
public:
EightQueens(int size, bool is_alt) {
assert(size <= MAXSIZE);
m_size = size;
m_solution_count = ۰;
m_attempt_count = ۰;
for (int i = 0; i < m_size; i++) {
m_queen[i] = i;
m_row_inuse[i] = ۰;
}
for (int j = 0; j < m_size*2; j++) {
m_diag_rise[j] = ۰;
m_diag_fall[j] = ۰;
}
if (is_alt) SearchAlt(0);
else Search(0);
}
int GetSolutionCount() {
return m_solution_count;
}
int GetAttemptCount() {
return m_attempt_count;
}
private:
void SearchAlt(int col){
if (col == m_size) {
m_solution_count++;
return;
}
for (int row = 0; row < m_size; row++) {
m_attempt_count++;
if (m_row_inuse[row] == 0 && IsDiagValid(col, row)) {
m_queen[col] = row;
m_row_inuse[row] = ۱;
SetDiags(col, 1);
SearchAlt(col+1);
SetDiags(col, 0);
m_row_inuse[row] = ۰;
m_queen[col] = -۱;
}
}
}
void Search(int col) {
if (col == m_size) {
m_solution_count++;
return;
}
for (int i = col; i < m_size; i++) {
if (SwapQueenIfDiagValid(col, i)) {
Search(col+1);
UnSwapQueen(col, i);
}
}
}
void SwapQueenBasic(int i, int j) {
int hold = m_queen[i];
m_queen[i] = m_queen[j];
m_queen[j] = hold;
}
void SetDiags(int col, int val) {
assert(m_diag_rise[m_queen[col] + col]!= val);
m_diag_rise[m_queen[col] + col] = val;
assert(m_diag_fall[m_queen[col] - col + m_size]!= val);
m_diag_fall[m_queen[col] - col + m_size] = val;
}
bool IsDiagValid(int col, int row) {
return (m_diag_rise[row + col] == ۰ &&
m_diag_fall[row - col + m_size] == ۰);
}
bool SwapQueenIfDiagValid(int i, int j) {
m_attempt_count++;
if (IsDiagValid(i, m_queen[j])) {
SwapQueenBasic(i, j);
SetDiags(i, 1);
return true;
}
return false;
}
void UnSwapQueen(int i, int j) {
SetDiags(i, 0);
SwapQueenBasic(i, j);
}
};
void
do_work(bool is_alt)
{
int size = ۸;
EightQueens puzzle(size, is_alt);
int soln = puzzle.GetSolutionCount();
int attempt = puzzle.GetAttemptCount();
assert(size!= ۸ || soln == ۹۲);
const char* style = is_alt ? "cartesian": "permutation";
printf("EightQueens[%d] has %d solutions found in %5d attempts using %s search. \n", size, soln, attempt, style);
}
int main()
{
printf("We should have 92 solutions for 8x8. \n");
do_work(0);
do_work(1);
}
Forwarded from Deleted Account
مسئله چند وزیر یک معمای شطرنجی و ریاضیاتی است که بر اساس آن باید n وزیر شطرنج در یک صفحه n×n شطرنج بهگونهای قرار داده شوند که هیچیک زیر ضرب دیگری نباشند. با توجه به اینکه وزیر بهصورت افقی، عمودی و اُریب حرکت میکند، باید هر وزیر را در طول، عرض و قطر متفاوتی قرار داد.
اولین و مشهورترین شکل این مسئله معمای هشت وزیر است که برای حل آن باید ۸ وزیر را در یک صفحهً معمولی (۸×۸) شطرنج قرار داد. این مسئله ۹۲ جواب دارد که ۱۲ جواب آن منحصر بهفرد است یعنی بقیه جوابها از تقارن جوابهای اصلی بهدست میآید.
مسئله n وزیر در صورتی جواب دارد که n مساوی ۱ یا بیشتر از ۳ باشد. یعنی مسئله دو وزیر و سه وزیر راه حلی ندارند.
اولین و مشهورترین شکل این مسئله معمای هشت وزیر است که برای حل آن باید ۸ وزیر را در یک صفحهً معمولی (۸×۸) شطرنج قرار داد. این مسئله ۹۲ جواب دارد که ۱۲ جواب آن منحصر بهفرد است یعنی بقیه جوابها از تقارن جوابهای اصلی بهدست میآید.
مسئله n وزیر در صورتی جواب دارد که n مساوی ۱ یا بیشتر از ۳ باشد. یعنی مسئله دو وزیر و سه وزیر راه حلی ندارند.