我被小学生难住了(各位大哥试试)

glunoy 2007-06-08 07:31:11
一天,表妹问我:
00000
00000
00000
0000
00000
怎样用一条线连起来?不能斜画 就是说比如: 左上0.0 不能连到1.1 另外0.0 不能直接连到 2.0 就是说只有上下左右能连 而且每个0只能连一次。
我想了想 咱好歹是个学计算机的。这类类似穷举的问题就交给计算机来做。没想到真正实现的时候却不知从何下手!
汗颜啊。如果采用深度搜索,怎样才能给走过的路径置一个位 以免死循环呢?另外要采用什么数据结构才好?堆栈貌似不太合适 队列也不成。咋办?
...全文
615 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
glunoy 2007-06-20
  • 打赏
  • 举报
回复
高手!偶啥也看不懂了
iceheart 2007-06-18
  • 打赏
  • 举报
回复
只需证明一个具有奇数行奇数列的矩阵上的所有点是无法用一条闭合的折线连接起来
milksea 2007-06-17
  • 打赏
  • 举报
回复
我是在去掉一个角的情况下统计的,另外起点和终点是等价的(倘不以左上角为起/终点,可立即推出矛盾),所以倒是没什么错。当然,laizhenyuan的方法更简洁,我之前确实证复杂了。
laizhenyuan 2007-06-17
  • 打赏
  • 举报
回复
milksea(航航 | 啥都不会咋办)的思路是对的,不过证明过程有误,不一定是要黑的作为起点,统计黑白位置的数量也有误。
由图可以看出不论怎么走,根据黑白相间的路线统计出都应该是黑的位置相等或相差一个,而这个图白的位置多出两个,明显是不可能形成黑白相间的路线的,因此无解。
Vitin 2007-06-16
  • 打赏
  • 举报
回复
如果注释掉以下两行(即去掉 3,0 这个不可通过点)
zero_graph[3][0] = row * GRAPH_SIZE + col + POSITIVE_OFFSET;
step_num--;

则可以立即得到一个解(根据StepZeroGraph实现,为按列遍历),递归25次。
Vitin 2007-06-16
  • 打赏
  • 举报
回复
编了个程序,结果证明是无解的。

#include <iostream>
using std::cout;
using std::endl;

const size_t GRAPH_SIZE = 5;
const size_t POSITIVE_OFFSET = 1;

bool StepZeroGraph(size_t zero_graph[][GRAPH_SIZE], size_t row, size_t col,
size_t& step_num)
{

if ( --step_num == 0)
{
return true;
}

static size_t try_step[][2] = { {-1, 0}, {1, 0}, {0, -1}, {0, 1} };

for (size_t i = 0; i < sizeof(try_step) / sizeof(try_step[0]); i++)
{
size_t next_row = row + try_step[i][0];
size_t next_col = col + try_step[i][1];
if ( next_row >= 0
&& next_row < GRAPH_SIZE
&& next_col >= 0
&& next_col < GRAPH_SIZE)
{
if (zero_graph[next_row][next_col] != 0)
continue;

zero_graph[row][col] = next_row*GRAPH_SIZE + next_col + POSITIVE_OFFSET;
if (StepZeroGraph(zero_graph, next_row, next_col, step_num))
return true;
}
}

zero_graph[row][col] = 0;
step_num++;
return false;
}

inline void PrintResult(size_t row, size_t col, size_t& step_num)
{
cout << step_num++ << ":\t"
<< "row = " << row << "\t"
<< "col = " << col << endl;
}

int main()
{
size_t zero_graph[GRAPH_SIZE][GRAPH_SIZE] = {0};
size_t step_num = GRAPH_SIZE*GRAPH_SIZE;

size_t row = 4;
size_t col = 0;
zero_graph[3][0] = row * GRAPH_SIZE + col + POSITIVE_OFFSET;
// zero_map[3][0]这里不能通过,所以设一个非0值
// 从题义知,zero_map[4][0]必然是开始或结束点
// 不失一般性,将zero_map[4][0]设为开始点
step_num--;


if (StepZeroGraph(zero_graph, row, col, step_num))
{
while (zero_graph[row][col] != 0)
{
PrintResult(row, col, step_num);
size_t next = zero_graph[row][col] - POSITIVE_OFFSET;
row = next / GRAPH_SIZE;
col = next - row * GRAPH_SIZE;
}
PrintResult(row, col, step_num);
}
else
{
cout << "Solution NOT FOUND !!" << endl;
}

system("pause");
}

输出是 Solution NOT FOUND !!
在调试时插入计数器发现,一共递归了43207次。

看了一下LS的证明,我觉得完全正确。

milksea 2007-06-16
  • 打赏
  • 举报
回复
缺角的×位置不大对,大家旋转一下看哈……
milksea 2007-06-16
  • 打赏
  • 举报
回复
给个无解的证明吧,结帖吧。

对此题,可以这样看。
容易看出,如果有解,左上角的圈肯定是起点或终点。我们去掉这个位置,无妨设它下面的位置是起点。
现在把所有的位置交替涂色:
○×○●○
●○●○●
○●○●○
●○●○●
○●○●○
可以看出,除去左上角后,黑的位置比白的位置少一个。但现在是从黑位置开始走,连成的线肯定是“黑白黑白……黑”或“黑白黑白……白”,要么黑白一样多,要么黑的比白的多一个,导致矛盾。所以无解。
JoyerHuang_悦 2007-06-14
  • 打赏
  • 举报
回复
大伙儿都被自己的计算机思维给害了。。
这道题又没有让给出全解,一个解就可以了。。。

就走一条蛇行线好了。。

-----
----|
|--||
||-||
|---|
From_China 2007-06-14
  • 打赏
  • 举报
回复
菜鸟今天报道!开始闯荡江湖!
marrco2005 2007-06-14
  • 打赏
  • 举报
回复
mark
free1879 2007-06-13
  • 打赏
  • 举报
回复
NP
hamlet0168 2007-06-13
  • 打赏
  • 举报
回复
此题无解
laohuang008 2007-06-13
  • 打赏
  • 举报
回复
1。用矩阵表示这张图
2。用1、2、4、8分别代表上下左右,比如说已经尝试过了上和下,就存3
3。用stack存路径
我想,差不多了吧。
(不过,这个问题好像真的没解)
gdckwxiao_swjtu 2007-06-10
  • 打赏
  • 举报
回复
做了半天,没做出来,现在的小学出的题真是让人难以理解啊!
感觉总是最后一条线连不好。
glunoy 2007-06-10
  • 打赏
  • 举报
回复
不能跨行 只能相邻的行
milksea 2007-06-09
  • 打赏
  • 举报
回复
深度优先搜索的话,和走地图是一回事,有一个标记矩阵就够了,不难。
milksea 2007-06-09
  • 打赏
  • 举报
回复
不是欧拉图,是哈密尔顿(Hamilton)图。
这个问题目前没有好的算法,只有指数级别的穷举。
何哀何欢 2007-06-09
  • 打赏
  • 举报
回复
0-0-0-0-0
........|
0-0-0-0-0
|
0-0-0-0-0
........|
0-0-0-0 |
|.......|
0-0-0-0-0
何哀何欢 2007-06-09
  • 打赏
  • 举报
回复
没看懂,这样算吗?

0-0-0-0-0
|
0-0-0-0-0
|
0-0-0-0-0
|
0-0-0-0 |
| |
0-0-0-0-0
加载更多回复(2)
内容概要:本文系统阐述了基于矩约束的最大熵方法在扩展不确定度评估中的理论基础与实现方法,并配套提供了Matlab代码实现。该方法通过引入已知的矩约束(如均值、方差等),在缺乏先验分布信息的前提下,依据最大熵原理推导出最符合客观规律且信息量最大的概率分布,从而对测量结果的不确定度进行更为合理和稳健的量化评估。文中详细论述了算法的数学推导过程、数值求解策略以及在实际工程问题中的应用步骤,尤其强调了其在处理非正态分布、小样本数据等传统方法难以应对的复杂场景时所展现出的优越性。; 适合人群:具备概率统计、信息论及数值计算基础知识,从事测量科学、实验数据分析、可靠性工程、系统建模与仿真等领域研究的科研人员、工程师,以及熟悉Matlab编程并希望深入理解不确定度量化前沿方法的技术开发者; 使用场景及目标:①应用于高精度仪器校准、物理实验数据处理等需要精确评定扩展不确定度的场景;②解决输入变量分布未知或非正态时的不确定性传播与合成问题;③目标是克服传统GUM方法的局限性,提升在信息不充分条件下的评估客观性与鲁棒性; 阅读建议:建议读者结合所提供的Matlab代码,深入理解拉格朗日乘子法求解最大熵分布的具体实现过程,重点关注矩约束的构建、熵最大化方程的求解以及最终置信区间的获取,同时可通过对比不同约束条件下评估结果的变化,来深刻把握该方法的适用条件与优势所在。
内容概要:本文提出了一种电动汽车聚合可行域的内近似模型,旨在精确刻画大规模电动汽车(EV)集群在充放电过程中的灵活性边界,并将其应用于含风、光、负荷等多重不确定性的微电网两阶段鲁棒调度中。通过引入鲁棒优化理论,结合大M法与列与约束生成(C&CG)算法,构建了能够有效处理不确定性并保证系统安全运行的优化模型。该方法不仅提升了对EV集群可调度能力的建模精度,还在保证计算效率的同时增强了微电网对可再生能源的消纳能力与运行经济性。; 适合人群:具备电力系统优化、鲁棒调度及混合整数规划基础知识,从事新能源并网、电动汽车参与电网互动、微电网能量管理等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究电动汽车集群作为分布式灵活资源参与电网调度的建模方法;②解决高比例可再生能源接入下的微电网两阶段鲁棒调度问题;③掌握大M法与C&CG算法在复杂鲁棒优化模型中的实现路径与求解技巧; 阅读建议:此资源以Matlab代码实现为核心支撑,建议读者结合文中详细的模型推导与算法流程,动手运行并调试配套程序,深入理解内近似建模思想与鲁棒优化求解机制,同时可进一步拓展至外近似模型或不同聚合策略的对比分析,以全面掌握EV集群灵活性建模的技术体系。
内容概要:本文聚焦2026年高教社杯全国大学生数学建模竞赛B题“无线电干扰源的快速自动定位与清除”,提供涵盖数学建模、算法实现与论文撰写的全套技术支持,并扩展分享多个科研方向的Matlab/Simulink仿真项目,如无人机协同路径规划、电力系统无功优化、信号处理、图像处理、车间调度、新能源预测与优化调度等。资源内容不仅服务于竞赛备赛,还覆盖智能优化、通信定位、边缘计算、雷达追踪、深度学习等多个前沿科研领域,旨在为参赛学生与初级科研人员提供系统化、高质量的技术参考与资源共享。文中强调科研需逻辑严密、善于借力,并倡导按目录系统学习以提升建模能力与科研素养,所有资料可通过指定网盘链接或微信公众号免费获取。; 适合人群:全国大学生数学建模竞赛参赛者,具备Matlab编程与数学建模基础的本科及研究生,以及从事智能优化、信号处理、电力系统、路径规划、机器学习等方向的初级科研人员。; 使用场景及目标:①备战数学建模竞赛,快速掌握赛题解题思路、算法模型与论文写作模板;②开展科研项目时复现经典算法、借鉴成熟仿真方法,提升研究效率;③系统学习多领域(如无人机路径规划、微电网优化、光伏/风电预测、图像处理)的Matlab/Simulink实现技术。; 阅读建议:建议读者按照资源目录顺序系统浏览,结合网盘中的代码与文档进行实践操作,重点关注建模逻辑、算法实现细节与仿真结果分析,同时关注公众号与共享链接以获取完整资料,全面提升竞赛竞争力与科研实践能力。
数据流挖掘处理动态变化数据环境,概念漂移(数据生成分布随时间变化)是导致在线学习性能退化的根本原因。如何快速检测概念漂移并自适应恢复模型性能是核心难题。现有检测方法(DDM、ADWIN等)依赖启发式阈值,缺乏灵敏度边界刻画与误报率控制保证;自适应学习缺少收敛性证明。为此,本文建立漂移检测统计理论框架,提出检测与自适应学习统一算法DADE。第一,将漂移检测形式化为在线假设检验问题,建立检测准则(控制误报率同时最小化检测延迟),给出检测边界定理:期望检测延迟下界与漂移幅度平方成反比、与误报约束对数成正比,CUSUM类检测器达到该下界;第二,提出DADE算法,由漂移感知检测器与自适应学习模块(学习率随置信度调整、漂移后放大重学习)构成,证明平稳段在线误差以指数速率收敛到稳态误差邻域,并给出误报率控制定理;第三,实现含五大模块的完整系统,在合成漂移数据与ELEC2业务流上实验。结果:均值漂移幅度1.0、误报约束0.01下,DADE平均检测延迟28.4步、误报率0.8%,优于DDM(31.2/2.3%)、ADWIN(42.6/1.2%)、Page-Hinkley(35.1/1.5%)、EWMA(38.4/1.8%);灵敏度扫描验证延迟随漂移幅度平方成反比衰减;漂移后35步内在线误差从0.31收敛至0.118,收敛速度约为静态学习率1.7倍;ELEC2上在线精度82.3%、误报率1.1%,优于全部基线。三类实验证据验证了理论框架的正确性与DADE的有效性,为动态场景在线学习提供可证明依据。 【课程报告内容】 摘要 第1章 绪论 第2章 相关技术与理论 第3章 系统需求分析 第4章 系统总体设计 第5章 系统详细设计与实现 第6章 系统测试与分析 第7章 总结与展望 参考文献 附件-实现指南

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧