六角幻方

六角幻方算法与实现:数学游戏的编程挑战 六角幻方,又称为蜂巢幻方或六边形幻方,是一种在数学游戏中具有一定历史的智力谜题。它由一系列带有数字的六边形组成,这些六边形填满在规则的六边形网格中,其排列遵循一定的数学原则,以满足特定的条件。在这个游戏中,玩家需要移动六边形,以确保网格中的每一行、每一列以及对角线上的数字之和都等于预定的目标值。这一目标值被称为幻方的常数或幻和。递归算法是一种在解决问题时将问题分解成相似子问题的策略,并调用自身来解决这些子问题的方法。在六角幻方的解决过程中,递归算法的应用体现在将一个大的问题分解成更小、更易管理的部分。 阅读详情
/*
 * 标题:六角幻方
    把 1 2 3 ... 19 共19个整数排列成六角形状,如下:
    * * *
   * * * *
  * * * * *
   * * * * 
    * * *
    要求每个直线上的数字之和必须相等。共有15条直线哦!
    再给点线索吧!我们预先填好了2个数字,第一行的头两个数字是:15 13,参见图【p1.png】,黄色一行为所求。
    请你填写出中间一行的5个数字。数字间用空格分开。
    这是一行用空格分开的整数,请通过浏览器提交答案,不要填写任何多余的内容(比如说明性的文字等)
 */
public class Main{
    public static void main(String[] args) {
        int[] a={1,2,3,4,5,6,7,8,9,11,12,14,16,17,18,19};
        f(a,0);
        System.out.println("finish!");
    }

    public static void f(int[] x,int k){
        if(k>=x.length){
            test(x);
            return;
        }
        for(int i=k;i<x.length;i++){
            {int t=x[k];x[k]=x[i];x[i]=t;}
            if(k==3){
                if(x[0]+x[1]+x[2]+x[3]!=38){
                    {int t=x[i];x[i]=x[k];x[k]=t;}
                    continue;
                }
            }
            if(k==8){
                if(x[4]+x[5]+x[6]+x[7]+x[8]!=38){
                    {int t=x[i];x[i]=x[k];x[k]=t;}
                    continue;
                }
            }
            if(k==12){
                if(x[9]+x[10]+x[11]+x[12]!=38){
                    {int t=x[i];x[i]=x[k];x[k]=t;}
                    continue;
                }
            }
            if(k==15){
                if(x[13]+x[14]+x[15]!=38){
                    {int t=x[i];x[i]=x[k];x[k]=t;}
                    continue;
                }
            }
            f(x,k+1);
            {int t=x[i];x[i]=x[k];x[k]=t;}
        }
    }
    public static void test(int[] x){
        int s1=15+x[0]+x[4];
        int s2=13+x[1]+x[5]+x[9];
        int s3=10+x[2]+x[6]+x[10]+x[13];
        int s4=x[3]+x[7]+x[11]+x[14];
        int s5=x[8]+x[12]+x[15];
        int s6=10+x[3]+x[8];
        int s7=13+x[2]+x[7]+x[12];
        int s8=15+x[1]+x[6]+x[11]+x[15];
        if(s1==38&&s2==38&&s3==38&&s4==38&&s5==38&&s6==38&&s7==38&&s8==38){
            System.out.print("#########");
            for(int i=0;i<x.length;i++){
                System.out.print(x[i]+" ");
            }
            System.out.println();
        }
//      for(int i=0;i<x.length;i++){
//          System.out.print(x[i]+" ");
//      }
//      System.out.println();
    }

}
六角幻方_六角幻方_ 因篇幅问题,源文件里有详细功能说明,以及源代码 立即下载

相关推荐

Windows安装ros2(Jazzy版本+win10/win11)-1.配置windows终端

更高版本的terminal可能设置里更加丰富, 有默认以管理员身份启动的选项等,可自行配置。打开微软应用商店, 在其中搜索并下载 Terminal 即可(注意别挂梯子)下载并安装, 安装的位置自行替换,建议别放到系统盘中。点击任务栏中的搜索, 输入store。

weixin_48398592的博客 1453

六角幻方(高斯消元法求解)

看了网上很多都是用dfs解决的,于是自己就写了一篇用高斯消元法的解决方法 问题描述 把 1 2 3 … 19 共19个整数排列成六角形状,如下: 要求每个直线上的数字之和必须相等。共有15条直线哦! 再给点线索吧!我们预先填好了2个数字,第一行的头两个数字是:15 13,参见下图,黄色一行为所求。 请你填写出中间一行的5个数字。数字间用空格分开。 这是一行用空格分开的整数,请通过浏览器提交答案,不要填写任何多余的内容(比如说明性的文字等) 解法 把15条直线看成是15条方程,每一个圆看成一个未知数,且未知数

m0_46200304的博客 1956

Uncertainty-Aware Mean Teacher(UA-MT)

本文提出了一种新的基于不确定性的半监督学习框架(UA-MT),通过额外利用未标记的数据从3D MR图像中分割左心房。具体地说,本文建立了一个教师模型和一个学生模型,学生模型通过最小化标注数据上的分割监督损失和所有输入数据上的与教师模型预测输出的一致性损失进行优化。如果没有未标记输入中的注释,教师模型的预测目标可能不可靠且有噪声。:在估计不确定性 U 的指导下,我们过滤掉相对不可靠**(高不确定性),整个体积** U 的不确定性**是 {u} ∈ RH×W ×D。过滤掉高不确定性的,也就是熵大于某个值的。

Alexa_的博客 1869

【回溯】B027_LQ_六角幻方 & 四阶幻方 & 九宫幻方 & 反幻方 & 魔方状态 & 纸牌三角形(恶心的剪枝)

把 1、2、3 … 19 共 19 个整数排列成六角形状,如下: 要求每个直线上的数字之和必须相等,共有 15 条 直线哦! 再给点线索吧!我们预先填好了 2 个数字,第一行的头两个数字是:15、13,如图。 请你填写出黄色一行的 5 个数字。数字间用空格分开 方法一:深搜+剪枝 思路 真的恶心, #include<bits/stdc++.h> using namespace std; int a[20]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1

无敌兔0x01 877

PyQt5 + HFSS:给你的仿真脚本做个专属GUI界面(零基础搭建指南)

本文详细介绍了如何使用PyQt5为HFSS仿真脚本创建专属GUI界面,适合零基础用户快速上手。通过Python二次开发,实现参数可视化调整、进度实时监控等功能,大幅提升团队协作效率。文章涵盖环境配置、界面设计、HFSS集成到打包部署的全流程,是仿真工程师提升工作效率的实用指南。

weixin_42535720的博客 185

LabVIEW调用.so文件的方法

LabVIEW调用.so文件的方法

m0_37878912的博客 3023

蓝桥杯——六角幻方

标题:六角幻方    把 1 2 3 ... 19 共19个整数排列成六角形状,如下:    * * *   * * * *  * * * * *   * * * *     * * *    要求每个直线上的数字之和必须相等。共有15条直线哦!    再给点线索吧!我们预先填好了2个数字,第一行的头两个数字是:15 13,参见图【p1.png】,黄色一行为所求。    请你填写出中间一行的5个数...

越努力,越幸运!!! 3473

脑机接口(BCI)从原理到开发实战 10|脑控外设:用脑电波控制机械臂/游戏

摘要: 脑机接口(BCI)的“最后一公里”是将分类结果转化为实际动作的关键环节。本文介绍如何通过指令映射、硬件通信和执行反馈实现脑控外设,包括离散/连续控制策略、防抖处理及串口/蓝牙通信方法。通过两个实战案例(运动想象控制机械臂抓取、P300/SSVEP控制游戏)和完整项目(OpenBCI控制小车),演示了从分类标签到设备动作的完整流程,重点涵盖指令生成算法(多数投票)、Python与Arduino的串口通信集成,为BCI系统落地提供实用解决方案。(149字)

小明的博客 765

【蓝桥杯 - 真题】六角幻方(dfs+剪枝)

标题:六角幻方 把 1 2 3 ... 19 共19个整数排列成六角形状,如下: * * * * * * * * * * * * * * * * * * * 要求每个直线上的数字之和必须相等。共有15条直线哦! 再给点线索吧!我们预先填好了2个数字,第一行的头两个数字是:15 13,参见图【p1.png】,黄色一行为所求。 ...

xuanweiace的博客 999

【车载以太网】ATU(Address Translation Unit / Address Table Unit)

【车载以太网】ATU(Address Translation Unit / Address Table Unit)

天赐好车的博客 150

Python经典编程习题100例:第32例:相反顺序输出列表

不要自卑,去提升实力 互联网行业谁技术牛谁是爹 如果文章可以带给你能量,那是最好的事!请相信自己 加油o~ 本人初学Python,只为熟悉语法编写,大神请勿理会 点击下面链接 Python经典编程100例习题汇总 题目描述: 按相反的顺序输出列表的值。 解题思路: > 利用reverse函数逆序 代码: arr=['f','g','e','b'] print(arr) arr.reverse() print(arr) ...

优快云 精品推荐 1416

六角幻方java

标题:六角幻方 把 1 2 3 ... 19 共19个整数排列成六角形状,如下: * * * * * * * * * * * * * * * * * * * 要求每个直线上的数字之和必须相等。共有15条直线哦! 再给点线索吧!我们预先填好了2个数字,第一行的头两个数字是:15 13,参见图【p1.png】,黄色一行为所求。 请你填写出中间一行的5个数字。数字间用空格分开。 这是一行用空格分开的整数,请通过浏览器提交答案,不要填...

weixin_43824233的博客 338

SOC、SOH、OCV

1)放电实验法的测量SOH结果最为准确,但是深度放电会对影响电池的寿命;2)电阻折算法仅将电阻作为评价SOH的依据,但电池老化时电阻的变化范围较小,因此该方法的误差较大;3)电阻折算法需要对电池进行大量的实验,绘制成Map图,但是该方法有一定的局限性,针对不同的电池需要绘制不同的Map图;4)阻抗分析法是目前最为前沿的方法,可以根据阻抗谱较为直观的分析SOH的变化,但是该方法需要的成本较高,每台设备约为5万美元。

m0_61973119的博客 2万+

java实现第五届蓝桥杯六角幻方

六角幻方 里面的*在编写的时候会自动编译成线,这里就用代码的格式把题目弄过来 把 1 2 3 ... 19 共19个整数排列成六角形状,如下: * * * * * * * * * * * * * * * * * * * 要求每个直线上的数字之和必须相等。共有15条直线哦! 再给点线索吧!我们预先填好了2个数字,第一行的头两个数字是:1...

南 墙 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

六角幻方(DFS)

六角幻方     把 1 2 3 ... 19 共19个整数排列成六角形状,如下:     * * *    * * * *   * * * * *    * * * *      * * *     要求每个直线上的数字之和必须相等。共有15条直线哦!     再给点线索吧!我们预先填好了2个数字,第一行的头两个数字是:15 13,参见图【p1.p

BRCOCOLI的博客 977

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

蓝桥杯 六角幻方

题目: 标题:六角幻方     把 1 2 3 ... 19 共19个整数排列成六角形状,如下:     * * *    * * * *   * * * * *    * * * *      * * *     要求每个直线上的数字之和必须相等。共有15条直线哦!     再给点线索吧!我们预先填好了2个数字,第一行的头两个数字是:15 13,参见图【p1.png】,黄色一行

CRZ_CC的博客 1833

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

六角幻方—题解

标题:六角幻方     把 1 2 3 ... 19 共19个整数排列成六角形状,如下:     * * *    * * * *   * * * * *    * * * *      * * *     要求每个直线上的数字之和必须相等。共有15条直线哦!     再给点线索吧!我们预先填好了2个数字,第一行的头两个数字是:15 13,参见图【p1.

First_sight的专栏 5427

六角幻方暴力填数

然后二级结论每种线的和都是38,所以只要暴力梅举5个数(不重复,在范围内),然后11个数都能表示出来了,然后还是要求这11个数在范围里不重复。最后发现只要x5放第二行中间的位置(左右都可以) 其他的点也跟着可以表示出来了 我这里表示出来的顺序就是从A-K。已知所有数的范围是从1-19并且没有重复,一共有15条边,并且每条边的数相等。只有三个点 并且15已知 所以只要有用一个未知数x1表示中间的那个点。然后我定义A-K点为a[0],a[6],a[7]…所以就确保剩下的16个数在1-19范围里,并且不重复。

yuyit_的博客 1290

用selen求解两种六角幻方

摘要:本文介绍了一种特殊的六角幻方求解方法,该幻方由1-24的数字填充在24个三角形中,要求每行、每60度斜条的数字和均为75。作者在张泽鹏先生selen版解法的基础上进行修改,构建约束条件模型,通过Rust语言实现快速求解。与SQL方案相比,selen能在瞬间完成计算,并输出满足条件的幻方排列结果。该解法展示了约束编程在组合数学问题中的高效性。

l1t的专栏 781

六角幻方(dfs+剪枝)

标题:六角幻方     把 1 2 3 ... 19 共19个整数排列成六角形状,如下:     * * *    * * * *   * * * * *    * * * *      * * *     要求每个直线上的数字之和必须相等。共有15条直线哦!     再给点线索吧!我们预先填好了2个数字,第一行的头两个数字是:15 13,参见图【p

Become hunger become strong 1317

六角幻方问题的暴力解法探索

通过这个案例,我们展示了如何将数学问题转化为可计算的算法,并利用编程工具高效求解。六角幻方问题虽然复杂,但通过合理的优化和约束条件处理,可以大大减少计算量,这正是算法设计的魅力所在。六角幻方是一个有趣的数学难题,要求在六边形的15条边上填入1-19不重复的数字,使得每条边的和都相等。通过几何推理可以得出每条边的和都是38这个重要结论。传统的暴力搜索需要枚举17个变量,计算量巨大。其余11个点的值都可以通过这些变量表示出来。使用集合数据结构来高效检查数字是否重复。共有15条边,每条边的和必须等于38。

DiamondWolf89的博客 755

六角幻方java_蓝桥杯 六角幻方 2014年JavaB组决赛试题-Go语言中文社区

标题:六角幻方把 1 2 3 ... 19 共19个整数排列成六角形状,如下:* * ** * * ** * * * ** * * ** * *要求每个直线上的数字之和必须相等。共有15条直线哦!再给点线索吧!我们预先填好了2个数字,第一行的头两个数字是:15 13,参见图【p1.png】,黄色一行为所求。请你填写出中间一行的5个数字。数字间用空格分开。这是一行用空格分开的整数,请通过浏览器提交答...

weixin_28788561的博客 178
上一篇: 表单标签的使用
下一篇: 海盗分金币
LuFei_java
博客等级 码龄10年 1粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值