当前位置: 首页 > article >正文

【蓝桥杯】43698.最大比例

题目描述

X 星球的某个大奖赛设了 M 级奖励。每个级别的奖金是一个正整数。

并且,相邻的两个级别间的比例是个固定值。

也就是说:所有级别的奖金数构成了一个等比数列。比如:54,36,24,16,其等比值为:3/2

现在,我们随机调查了一些获奖者的奖金数。

请你据此推算可能的最大的等比值。

输入描述

第一行为数字 N(0<N<100),表示接下的一行包含 N 个正整数

第二行包含 N 个正整数 Xi (Xi < 109),用空格分开。每个整数表示调查到的某人的奖金数额

输出描述

一个形如 A/B 的分数,要求 A、B 互质。表示可能的最大比例系数 测试数据保证了输入格式正确,并且最大比例是存在的。

输入输出样例

示例
输入

3
1250 200 32

输出

25/4

算法解析

  首先读取输入的奖金数,对其进行排序并去重,以保证后续处理的数据是有序且无重复的。
  求相邻奖金的比例:计算排序后相邻奖金数的比例,将这些比例化简为最简分数形式。
  求最大公比:通过辗转相除法求出这些最简分数比例的最大公比。

代码实现

from fractions import Fraction

# 辗转相除法求两个分数的最大公比
def gcd_fraction(a, b):
    while b != 0:
        a, b = b, a % b
    return a

# 计算最大比例系数
def max_ratio(numbers):
    # 对奖金数进行排序并去重
    numbers = sorted(set(numbers))
    ratios = []
    # 计算相邻奖金数的比例
    for i in range(1, len(numbers)):
        ratio = Fraction(numbers[i], numbers[i - 1])
        ratios.append(ratio)
    # 求所有比例的最大公比
    if len(ratios) == 0:
        return Fraction(1, 1)
    result = ratios[0]
    for ratio in ratios[1:]:
        # 求两个分数的分子和分母的最大公比
        num_gcd = gcd_fraction(result.numerator, ratio.numerator)
        den_gcd = gcd_fraction(result.denominator, ratio.denominator)
        result = Fraction(num_gcd, den_gcd)
    return result

# 读取输入
n = int(input())
numbers = list(map(int, input().split()))

# 计算最大比例系数
ratio = max_ratio(numbers)

# 输出结果
print(f"{ratio.numerator}/{ratio.denominator}")

http://www.kler.cn/a/530883.html

相关文章:

  • 三路排序算法
  • 网站快速收录:如何优化网站音频内容?
  • 阿里云盘PC端打不开解决办法
  • Linux——文件系统
  • Vuex状态管理
  • 从零开始部署Dify:后端与前端服务完整指南
  • PageForge v2025.1.2 正式发布:打造现代化的静态站点生成工具
  • HENU~国商计科概率论复习
  • 在Linux环境下修改Anaconda的默认虚拟环境安装位置
  • Deepseek:网页版OR本地部署版本?
  • 【Linux】进程间通信(管道:匿名管道、命名管道、实战练习)
  • IDA Pro的基础指南
  • MiniQMT与xtquant:量化交易的利器
  • Leetcode—81. 搜索旋转排序数组 II【中等】
  • web前端14--flex
  • 线程互斥同步
  • Axure PR 9 动效 设计交互
  • 软考论文万能模板
  • 2021版小程序开发5——小程序项目开发实践(1)
  • k8s二进制集群之ETCD集群部署
  • Altium Designer绘制原理图时画斜线的方法
  • opencv实现边缘模板匹配
  • 实验力学的记录
  • 蓝桥杯真题——小秘密(省模拟赛)
  • UE 不同类型蓝图类的区别(关卡蓝图 Component蓝图 Actor蓝图)
  • oracle:索引(B树索引,位图索引,分区索引,主键索引,唯一索引,联合索引/组合索引,函数索引)