回溯算法求解桥本分数式

'C 语言' | 全排列解桥本分数式问题 【桥本分数式问题】 问题描述: 日本数学家 桥本吉彦教授 于1993年10月在我国山东举行的中日美三国数学教育研讨会上向与会者提出以下填数趣题: 把1,2,……,9,这9个数字填入下式的9个方格中(数字不得重复),使下面的分数等式成立: 桥本教授当即给出了一个解答,这一填数趣题的解是否唯一?如果不唯一究竟有多少个解?试求出所有解答(等式左边两边分数交换次序只算一个解答) 算法实现: #inclu... 阅读详情

    题目描述: 将 1-9 九个数不重复地赋给不同的 9 个元素 ,实现形如 a/bc+d/ef=f/hi 的形式: 例:1/26+5/78=4/39 1/32+5/96=7/84 (注意:1/26+5/78=4/39 和 5/78+1/26=4/39 只能算一种解) 求满足条件的解共有多少个?                  思路: 要用回溯法

    可见问题的解空间是9位的整数组,其约束条件是9位数字中没有相同的数字且必须满足分数式的要求。为此设置a数组,式中每一个数用一个数组元素表示:a[1]/a[2]a[3]+a[4]/a[5]a[6] = a[7]/a[8]a[9]。同时式中三个分母分别为:

m1 = a[2]a[3] = a[2]*10+a[3];  m2 = a[5]a[6] = a[5]*10+a[6];  m3 = a[8]a[9] = a[8]*10+a[9]

    注意到等式左侧两分数交换次序只算一个解,为了避免重复,令a[1] < a[4]。

回溯程序代码:

#include<stdio.h>
void main()
{
	int g, i, k, s, a[10];
	long m1, m2, m3;
	i = 1;
	a[1] = 1;
	s = 0;
	while (1) 
	{
		g = 1;
		for (k = i - 1; k >= 1; k--)
		{
			if (a[i] = a[k])
			{
				g = 0;
				break;
			}
		}
		if (i == 9 && g == 1 && a[1] < a[4])
		{
			m1= a[2] * 10 + a[3];  
			m2 = a[5] * 10 + a[6];  
			m3 = a[8] * 10 + a[9];
			if (a[1] * m2*m3 + a[4] * m1*m3 == a[7] * m1*m2)
			{
				printf("(%2d)", ++s);
				printf("%d/%ld+%d/%ld = %d/%ld", a[1], m1, a[4], m2, a[7], m3);
				if (s % 2 == 0) { printf("\n"); }
			}
		}
		if (i < 9 && g == 1) 
		{ i++; a[i] = 1; continue; }
		while (a[i] == 9 && i > 1) 
		{ 
			i--; }
		if (a[i] == 9 && i == 1) 
		{
			break;
		}
		else
		{
			a[i]++;
		}
	}
	printf("共有以上%d个解。\n", s);
}



桥本分数式 立即下载

相关推荐

硬件即代码:用软件工程思维拆解F450无人机装配的模块化设计哲学

本文探讨了如何用软件工程思维重构DJI-F450无人机的模块化设计,将硬件装配提升为可编程系统。通过硬件抽象层、控制系统分层架构和扩展槽位设计模式,展示了无人机装配的模块化哲学,并结合实际案例说明如何优化性能与安全性。

weixin_29294975的博客 386

算法—回溯法桥本分数式

/* 将1-9九个数不重复地赋给不同的9个元素 ,实现形如a/bc+d/ef=f/hi 的形式: 例:1/26+5/78=4/39 1/32+5/96=7/84 (注意:1/26+5/78=4/39 和5/78+1/26=4/39 只能算一种解) 求满足条件的解共有多少个? */ #include "stdio.h" void main() { int i,k,g,s; in

学习,你不是一个人在战斗 ~ 961302305(QQ,微信) 6707

让Claude连续写代码24小时会发生什么?揭秘长时运行”架构背后的工程逻辑与未来

AI长时运行实验揭示软件开发新范式 Claude Opus通过Harness框架24小时独立开发全栈应用的成功实验,展示了AI从辅助工具向异步协作者的进化。实验采用"上下文轮转"机制解决记忆管理难题,将任务拆解为微周期并通过文件系统同步进度。核心突破在于:1)TDD成为AI自治基石,200+测试用例确保开发不偏航;2)文件取代对话成为AI间高效沟通介质;3)开发者角色重构为需求定义和框架设计者。该实验证明,通过严谨的架构约束和验收标准,AI可完成复杂长周期任务,预示着软件开发将从手工作坊

老孙 | Ethan Sun 的博客:AI 智能体与 AI 原生软件的工程实践 1093

桥本分数(回溯法)

桥本分数题目答案注意 题目 桥本分数。将1,2,3,4,5,6,7,8,9填入如下图的9个方格中,使得等式成立(要求不得重复)。 用回溯法设计求解桥本分数的算法。 输入格式: 整数n(n<=10) 输出格式: 按照字典序,输出前n个等式 输入样例: 在这里给出一组输入。例如: 1 输出样例: 在这里给出相应的输出。例如: 1/26+5/78=4/39 答案 #include<iostream> using namespace std; int n=9,vis[10],n1; int

ljhsq的博客 4721

从YOLOv8到RTDETR:如何将训练后的YOLO指标无缝转换为COCO格式

本文详细介绍了如何将训练后的YOLOv8指标无缝转换为COCO格式,特别适用于RTDETR模型的评估。通过数据准备、指标转换流程和实际项目经验,帮助开发者解决YOLO与COCO指标差异问题,提升模型评估的准确性和权威性。

weixin_29085151的博客 378

破晓之光:GTK#框架让C# WinForm程序跨平台运行的终极指南

GTK#框架的出现,彻底打破了C# WinForm只能在Windows上运行的桎梏。

墨夶的博客 605

桥本分数式-DFS法-Java

【问题描述】 将 1-9不重复地赋给不同的 9个元素 ,实现形如 a/bc+d/ef=g/hi 的形式: 例:1/26+5/78=4/39 1/32+5/96=7/84 (注意:1/26+5/78=4/39 和 5/78+1/26=4/39 只能算一种解) 求满足条件的解共有多少个? 【解决思路】 首先想到回溯和DFS,这里选择了类全排列的DFS。可以设置一个num数组存放这些不重复的数字,此时可以类比全排列方法,使用数组访问法或者是交换法进行排列(两种方法具体点击这里)。此处我们选择交换法,因为两者难度和

呼呼的博客 1325

PCL 八叉树的使用

八叉树(Octree)是一种空间划分的数据结构,广泛应用于三维点云的处理和分析。八叉树通过将空间递归地划分为八个子区域,可以有效地组织和索引三维点数据,提升点云的查询、降采样和配准等操作的效率。

纵马踏花向自由 1658

从“八皇后”到“桥本分数”:回溯算法如何解决那些让你挠头的趣味数学题?

本文探讨了回溯算法在解决八皇后、桥本分数等趣味数学问题中的应用。回溯法通过系统试错和及时回溯的策略,成为解决约束满足问题的强大工具。文章详细介绍了回溯法的核心思想、优化技巧及实际应用,帮助读者理解这一算法的强大之处。

weixin_42565652的博客 371

光学传播仿真软件:ASAP_(1).ASAP软件介绍与安装

ASAP(Advanced System for Analysis and Propagation)是一款强大的光学传播仿真软件,广泛应用于光学系统的设计、分析和优化。它提供了丰富的建模工具和仿真功能,可以帮助用户从简单的光学元件到复杂的光学系统进行仿真。:支持光学、机械、热学等多物理场的联合仿真。:采用高精度的算法,确保仿真结果的准确性。:内置了大量的光学元件,如透镜、反射镜、棱镜、光栅等。:提供直观的用户界面,支持多种建模和仿真方式。:支持使用脚本语言进行二次开发,增强软件的定制能力。

kkchenjj的博客 1593

《网络安全自学教程》- Windows基线检查加固

Windows安全配置,基线检查标准,基线加固方式

wangyuxiang946的博客 1万+

回溯

5.1  回溯法概述 与穷举的“笨拙”搜索相比,回溯法则是一种“聪明”的求解效益更高的搜索法。 下面介绍回溯设计及其应用,体会回溯法相对于穷举的特点与优势。 5.1.1 回溯的概念 有许多问题,当需要找出它的解集或者要求回答什么解是满足某些约束条件的最佳解时,往往使用回溯法。 回溯法是一种试探求解的方法:通过对问题的归纳分析,找出求解问题的一个线索,沿着这一线索往前试探,若试探成功,即得

1453

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

c语言回溯法解决倒桥本分数式,桥本分数式问题的C++算法

用枚举法,得到结果10个解,各位读者 可查看结果帮忙审核之所以使用枚举法,是因为实现简单分析:如果采用回溯法,是否有利于实现算法的并行计算(如果需要的话?);而采用枚举,则有利于实现并行/*用枚举法求解桥本分数式问题问题:寻找p1(1位数)/p2(2位数)+p3(1位数)/p4(2位数)=p5(1位数)/p6(2位数),每位数取值[1..9]特点:实现比回溯法简单*/#include #inclu...

weixin_34665386的博客 1328

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

蓝牙模块HM-10手册

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

桥本分数式(蓝桥杯)

 日本数学家桥本吉彦教授于1973年10月在我国山东举行的中日美三国数学教育研讨会上向与会者提出以下填数趣题:  把1,2, . . . 9这9个数填入下列算式的9个方格中(数字不得重复),使下列等式成立。              口                   口                      口          ———  +        ———      =  ...

潮流 M I 的博客 4923

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

桥本分数

桥本分数,吧{1,2,3,...,9}这9个数字填入图中的9个方格中使得等式成立(要求不得重复),使用回溯求解。 //8_7 #include<iostream> #include<vector> using namespace std; int n = 9; vector<int> result(n), visited(n + 1); void dfs...

ItaLink 1173

桥本分数c语言,桥本分数式问题的C++算法

用枚举法,得到结果10个解,各位读者 可查看结果帮忙审核之所以使用枚举法,是因为实现简单分析:如果采用回溯法,是否有利于实现算法的并行计算(如果需要的话?);而采用枚举,则有利于实现并行/*用枚举法求解桥本分数式问题问题:寻找p1(1位数)/p2(2位数)+p3(1位数)/p4(2位数)=p5(1位数)/p6(2位数),每位数取值[1..9]特点:实现比回溯法简单*/#include #inclu...

weixin_35990358的博客 692

桥本分数式 回溯法

题意: 给1-9这9个数字,不能重复的使 ?/ ?*? + ?/ ?*? =  ?/ ?*? 题解: public class Main{ public static void main(String[] args){ int[] a = new int[10]; int ans = 0; int i = 1; a[1] = 1; while(true){

董公子的博客 2988

桥本分数式问题的C++算法

用枚举法,得到结果10个解,各位读者 可查看结果帮忙审核 之所以使用枚举法,是因为实现简单 分析:如果采用回溯法,是否有利于实现算法的并行计算(如果需要的话?);而采用枚举,则有利于实现并行 /*用枚举法求解桥本分数式问题 问题:寻找p1(1位数)/p2(2位数)+p3(1位数)/p4(2位数)=p5(1位数)/p6(2位数),每位数取值[1..9] 特点:实现

alaclp的专栏 3846

c语言回溯法解决倒桥本分数式,回溯法 经典题目 八皇后 桥本分数

回溯法 经典题目 八皇后 桥本分数回溯法经典题目八皇后问题的求解 推广 N 皇后的求解 #include /使用库函数 printf、scanf #include /使用绝对值函数 abs const int N = 100; /假定最多求 100 皇后问题 int xN = -1; /由于数组下标从 0 开始,将数组 xN初始化为-1 void Queue(int n); /函数声明 int P...

weixin_29272301的博客 842

回溯法——桥本分数

将1-9九个数不重复地赋给不同的9个元素 ,实现形如a/bc+d/ef=f/hi 的形式。例:1/26+5/78=4/39 1/32+5/96=7/84 (注意:1/26+5/78=4/39 和5/78+1/26=4/39 只能算一种解),共有多少种不同的解。

小赵起名困难户的博客 636

头歌算法设计与分析实验四 回溯法

任务描述本关任务:有一个含n个字符数组a,所有元素均不相同,设计一个算法求其所有子集(幂集)。编程要求根据提示,在右侧编辑器补充代码,计算并输出字符数组a的所有幂集。测试说明平台会对你编写的代码进行测试:预期输出:开始你的任务吧,祝你成功!

zzj的博客 1269

回溯法

与穷举的“笨拙”搜索相比,回溯法则是一种“聪明”的求解效益更高的搜索法。 下面介绍回溯设计及其应用,体会回溯法相对于穷举的特点与优势。 5.1.1 回溯的概念 有许多问题,当需要找出它的解集或者要求回答什么解是满足某些约束条件的最佳解时,往往使用回溯法。 回溯法是一种试探求解的方法:通过对问题的归纳分析,找出求解问题的一个线索,沿着这一线索往前试探,若试探成功,即得到解;若试探失败,就逐步

飞雪---晨 1250

C语言-回溯例4

1,问题提出 日本数学家桥本吉彦教授于1993年10月在我国山东举行的中日美三国数学教育研讨会上向与会者提出以下填数趣题: 把1,2,...,9这9个数字填入下式的九个方格中(数字不得重复),使下面的分数等式成立 桥本教授当即给出了一个解答。这一分数式填数趣题究竟共有多少个解答? 试求出所有解答。(等式左边两个分数交换次序只算一个解答)。 2,回溯算法设计设置a数组,式中每一□位置用一个...

weixin_34217773的博客 256
上一篇: Android 酒店客房管理简单小程序
下一篇: Java Web简单登陆功能的实现
bingoCoder
博客等级 码龄10年 1400粉丝 157原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值