社区
数据结构与算法
帖子详情
求教(有没有人能做的出来的--最好能用多种方法)
CycloneFox
2003-10-10 11:27:13
9个数字从1~9分别放在3*3的格子里使横,竖,斜相加所得的数均等于同一个数.
用C++编写.
扩展为25,49,81个数.
那位大虾肯帮小弟这个忙呀?
...全文
81
6
打赏
收藏
求教(有没有人能做的出来的--最好能用多种方法)
9个数字从1~9分别放在3*3的格子里使横,竖,斜相加所得的数均等于同一个数. 用C++编写. 扩展为25,49,81个数. 那位大虾肯帮小弟这个忙呀?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
CycloneFox
2003-10-12
打赏
举报
回复
楼上的师兄,谢谢了。
CycloneFox
2003-10-11
打赏
举报
回复
谢谢了真是太好了.
哈哈.
BlueSky2008
2003-10-11
打赏
举报
回复
FAQ->组合数学算法->n阶幻方解法。
nealzane
2003-10-11
打赏
举报
回复
修正了小小的漏洞(不过也是洞啊 =_=b):
#include <iostream>
using namespace std;
bool used[12] = { false };
int board[4][4];
bool check(void) {
return (board[1][1] + board[2][1] + board[3][1] == 15 &&
board[1][2] + board[2][2] + board[3][2] == 15 &&
board[1][3] + board[2][3] + board[3][3] == 15 &&
board[1][1] + board[2][2] + board[3][3] == 15 &&
board[1][3] + board[2][2] + board[3][1] == 15);
}
void rowAt(int row) {
if (row == 0) {
if (check()) {
for (int i = 1; i <= 3; i ++, cout << endl)
for (int j = 1; j <= 3; j ++)
cout << board[i][j] << ' ';
cout << endl;
}
}
else {
for (int i = 1; i <= 9; i ++) {
if (!used[i]) {
used[i] = true;
board[row][1] = i;
for (int j = 1; j <= 9; j ++) {
if (!used[j]) {
used[j] = true;
board[row][2] = j;
int k = 15 - i - j;
if (k > 0 && k < 10 && !used[k]) {
used[k] = true;
board[row][3] = k;
rowAt(row - 1);
used[k] = false;
}
used[j] = false;
}
}
used[i] = false;
}
}
}
}
int main(void) {
rowAt(3);
}
------------------------------------------------------------
输出:
4 3 8
9 5 1
2 7 6
6 1 8
7 5 3
2 9 4
2 7 6
9 5 1
4 3 8
8 1 6
3 5 7
4 9 2
2 9 4
7 5 3
6 1 8
8 3 4
1 5 9
6 7 2
4 9 2
3 5 7
8 1 6
6 7 2
1 5 9
8 3 4
nealzane
2003-10-11
打赏
举报
回复
扔块砖头:
#include <iostream>
using namespace std;
bool used[12] = { false };
int board[4][4];
bool check(void) {
return (board[1][1] + board[2][1] + board[3][1] == 15 &&
board[1][2] + board[2][2] + board[3][2] == 15 &&
board[1][3] + board[2][3] + board[3][3] == 15 &&
board[1][1] + board[2][2] + board[3][3] == 15 &&
board[1][3] + board[2][2] + board[3][1] == 15);
}
void rowAt(int row) {
if (row == 0) {
if (check()) {
for (int i = 1; i <= 3; i ++, cout << endl)
for (int j = 1; j <= 3; j ++)
cout << board[i][j] << ' ';
cout << endl;
}
}
else {
for (int i = 1; i <= 9; i ++) {
if (!used[i]) {
used[i] = true;
board[row][1] = i;
for (int j = 1; j <= 9; j ++) {
if (!used[j]) {
used[j] = true;
board[row][2] = j;
int k = 15 - i - j;
if (k > 0 && !used[k]) {
used[k] = true;
board[row][3] = k;
rowAt(row - 1);
used[k] = false;
}
used[j] = false;
}
}
used[i] = false;
}
}
}
}
int main(void) {
rowAt(3);
}
------------------------------------------------------------
输出:
4 3 8
9 5 1
2 7 6
6 1 8
7 5 3
2 9 4
2 7 6
9 5 1
4 3 8
8 1 6
3 5 7
4 9 2
2 9 4
7 5 3
6 1 8
8 3 4
1 5 9
6 7 2
4 9 2
3 5 7
8 1 6
6 7 2
1 5 9
8 3 4
Kavent
2003-10-10
打赏
举报
回复
幻方问题嘛~
EI顶刊复现:基于氨储能技术的电转氨耦合风–光–火综合能源系统双层优化调度(Matlab代码实现)
内容概要:本文围绕“基于氨储能技术的电转氨耦合风–光–火综合能源系统双层优化调度”展开研究,提出了一种融合风电、光伏等可再生能源与传统火电,并通过电转氨(Power-to-Ammonia, P2A)技术实现能量储存与转换的综合能源系统优化模型。该模型采用双层优化调度架构,上层以系统运行经济性与能源利用效率为目标进行优化决策,下层处理电转氨设备及氨储能系统的动态响应与运行约束,旨在提升高比例可再生能源接入背景下系统的灵活性、稳定性与新能源消纳能力。研究通过Matlab编程实现了该双层优化模型,并基于典型算例验证了其在降低系统运行成本、增强调节能力以及促进清洁能源高效利用方面的有效性。; 适合人群:具备电力系统、能源系统或优化调度相关基础知识,从事新能源、综合能源系统、储能技术或优化算法研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究电转氨(Power-to-Ammonia, P2A)技术在综合能源系统中的应用潜力;②探索基于双层优化框架的风–光–火–氨多能互补系统的协同调度策略;③掌握利用Matlab实现复杂能源系统优化调度建模与求解的
方法
。; 阅读建议:此资源以Matlab代码实现为核心,不仅提供了完整的优化模型,还展示了详细的算法流程。读者在学习时应结合双层优化理论,仔细研读代码逻辑,重点关注目标函数的构建、约束条件的处理以及上下层信息交互机制,并尝试复现和修改算例以加深理解。
GhostTrack(Python)
「GhostTrack(Python)」是开发工具/插件(Python)。项目简介:Useful tool to track location or mobile number可直接使用,适合日常开发提效与学习借鉴。
retouch_2026092922495309.jpg
retouch_2026092922495309.jpg
java jdk 1.8.0
打开链接下载源码: https://pan.quark.cn/s/a4b39357ea24 Java JDK 1.8.0被视为Java开发工具套件中的一个关键版本,其中整合了Java语言的核心库、编译器、运行时环境、调试工具以及其他必需的组件,为开发与执行Java应用程序奠定了基础。该版本的JDK诞生于2018年,具体为1.8.0_171的更新版本,其核心在于对先前版本的修正与优化。Java JDK是Java Development Kit的缩写,它属于Java平台标准版(Java SE)的范畴,主要用于构建和部署Java应用程序。该套件提供了编译、调试、性能分析等一系列工具,使开发者能够编写、打包、测试以及运行Java程序。Java JDK 1.8.0引入了诸多创新特性,具体包括: 1. ** Lambda表达式**:这被公认为Java 8最突出的特性之一,它引入了一种全新的语法结构,使得函数式编程更为精炼。Lambda表达式能够将匿名函数作为
方法
参数传递,从而简化了多线程编程中的回调函数和事件处理。 2. **
方法
引用和构造器引用**:它们与Lambda表达式紧密关联,提供了一种更为直观的方式来引用既存的
方法
或构造器,有效减少了代码的冗余。 3. ** Stream API**:这是一个全新的集合操作接口,它支持序列化操作,例如过滤、映射和规约,特别适用于大规模数据处理,显著提升了代码的可读性与执行效率。 4. ** 接口默认
方法
**:Java 8赋予了接口定义默认
方法
的能力,通过提供默认实现,无需强制子类去重写该
方法
,从而增强了接口的适应性。 5. ** Date和Time API的改进**:Java 8推出了全新的java.time包,用以替代已过时的ja...
快消食品营销策划商业计划书冻干食品商业计划书
快消食品营销策划商业计划书冻干食品商业计划书
数据结构与算法
33,025
社区成员
35,334
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章