hhhjskddb 2022-10-30 22:22 采纳率: 100%
浏览 62
已结题

Python关于比例简化

比例简化. 在社交媒体上, 经常会看到针对某一个观点同意与否的民意调查以及结果. 例如, 对某一观点表示支持的有1498 人, 反对的有 902人, 那么赞同与反对的比例可以简单的记为1498:902.
不过, 如果把调查结果就以这种方式呈现出来, 大多数人肯定不会满意. 因为这个比例的数值太大, 难以一眼看出它们的关系. 对于上面这个例子, 如果把比例记为5:3, 虽然与真实结果有一定的误差, 但依然能够较为准确地反映调查结果, 同时也显得比较直观.
现给出支持人数A, 反对人数B, 以及一个上限L(1 ≤ L ≤ 100), 请将A:B化简为A':B'(化简过程定义为函数). 要求在A'和B'均不大于L且A'和B'互质(两个整数的最大公约数是1)的前提下, A'/B' ≥ A/B且A'/B'-A/B的值尽可能小.
注意: 为了避免浮点数运算的误差, 应使用整数运算进行条件判断. 如: 判断A'/B' ≥ A/B可转换为判断A'B≥ AB', 前者是浮点数运算, 有误差; 后者是整数运算, 无误差. 同理, A'/B'-A/B的值尽可能小也应该转换成整数运算的比较, 请大家思考如何表示.

img

  • 写回答

1条回答 默认 最新

  • 请叫我问哥 Python领域新星创作者 2022-10-30 23:46
    关注

    按照你这个要求,1498:902转化成98:59比5:3的误差更小,前者是14,后者是16,为什么选择5:3呢?是不是还有别的条件?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月8日
  • 已采纳回答 10月31日
  • 修改了问题 10月30日
  • 创建了问题 10月30日