QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: moonsky

世界经典算法问题交流探讨

[复制链接]
发表于 2003-5-19 00:27:15 | 显示全部楼层
GREAT
回复

使用道具 举报

发表于 2003-5-20 18:05:32 | 显示全部楼层
[quote:460301adf1="dolephi9080"]c语言果然很长.[/quote]

转载:
[code:1]
/* 本程序使用递归-回溯法求解8皇后问题。Visual C++ 6.0 调试通过。 */

#include <stdio.h >
#include <conio.h >
#include <math.h >

#define QUEENS 8

int iCount = 0;

int Site[QUEENS];

void Output(void);

void Queen(int n);

int IsValid(int n);

/*----------------------------Main:主函数。----------------------------*/
void main()
{
Queen(0);

getch();
}

/*-----------------Queen:递归放置第n个皇后,程序的核心!----------------*/
void Queen(int n)
{
int i;

if(n == QUEENS)
{
  Output();
  return;
}

for(i = 1 ; i <= QUEENS ; i++)
{
  Site[n] = i;

  if(IsValid(n))
    Queen(n + 1);
}
}

/*------IsValid:判断第n个皇后放上去之后,是否合法,即是否无冲突。------*/
int IsValid(int n)
{
int i;

for(i = 0 ; i < n ; i++)
{
   if(Site[i] == Site[n])
     return 0;

   if(abs(Site[i] - Site[n]) == (n - i))
     return 0;
}

return 1;
}

/*------------Output:输出一个解,即一种没有冲突的放置方案。------------*/
void Output(void)
{
int i;

printf( "No.%-5d " , ++iCount);

for(i = 0 ; i < QUEENS ; i++)
   printf( "%d " , Site[i]);

printf( "\n ");

}
[/code:1]
回复

使用道具 举报

发表于 2003-5-24 06:17:03 | 显示全部楼层
这段程序是比较简练, 但因为包含递归,所以执行效率远远不如自己模拟'栈'来的高效。但自己模拟栈的话,源程序就会很长了。
so, choice are yours....
回复

使用道具 举报

发表于 2003-7-2 16:19:19 | 显示全部楼层
记得好像有可以用back-seartch算法4×4得问题,过几天我试试
回复

使用道具 举报

发表于 2003-7-2 23:09:19 | 显示全部楼层
有不少解是重复的,应该加个过滤的过程,过滤只是旋转了棋盘的情况
回复

使用道具 举报

发表于 2003-7-15 18:21:32 | 显示全部楼层
算法是关键, 如果语言的优势就是快的话, 那大家就只能去学汇编了
回复

使用道具 举报

发表于 2004-8-20 17:01:19 | 显示全部楼层
不算很长啊
回复

使用道具 举报

发表于 2004-8-21 12:36:45 | 显示全部楼层
[quote:8e4eaa120e="motor98"]语言不重要, 算法是关键。 皇后问题在很大规模时, 可用近似算法。 顾军教授在这方面颇有建树。 号称3万个皇后, 半小时搞定。 (hehe, 具体时间记不清了;)

有兴趣的可以search google: 顾军 ;)[/quote]

找不到,能否给个链接?我有兴趣。
回复

使用道具 举报

发表于 2004-8-23 00:54:36 | 显示全部楼层
好啊,经常搞些经典算法大家练练。
回复

使用道具 举报

发表于 2004-10-28 12:57:27 | 显示全部楼层
[quote:ff78a731d3="NightHK3"]长不等于复杂,短不等于简单,关键要简洁明了
C是一种优雅的语言,你看它的每一段多象一首首小诗。[/quote]

强烈同意   有同感呀
回复

使用道具 举报

发表于 2004-10-28 14:56:49 | 显示全部楼层
留念
回复

使用道具 举报

发表于 2004-10-28 17:42:31 | 显示全部楼层
前几天刚刚做了一个八数码的问题,使用三种不同的启发函数!现在又要做人工神经网络的bp算法,弄了好几天了,还是不行!     

     哪位大侠能够介绍些关于人工神经网络bp算法的啊?最好能贴出有注释的源程序,想学习一下!谢谢了!
回复

使用道具 举报

发表于 2004-12-2 13:05:07 | 显示全部楼层
前些日子读到一篇文章,说的是程序优化,里面有句话:

不要以为CPU的速度快,就把所有的事情都交给它去做,

可以由程序员完成的,绝对不能让CPU处理 ... ...

长点、难懂一点、却不只是快一点!
_________________



有职业精神
回复

使用道具 举报

发表于 2005-1-14 22:10:22 | 显示全部楼层
其实我们现在的程序不必太在意cpu的消耗和内存的占用,现在硬件的发展太快了,关键是程序易懂简单就好。
回复

使用道具 举报

发表于 2005-1-17 18:09:33 | 显示全部楼层


我前几天才知道怎么算

789789...789一共29个789组成的数字,除以79的余数。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 17:29 , Processed in 0.091160 second(s), 12 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表