【问题标题】:Algorithm for this format这种格式的算法
【发布时间】:2023-04-09 08:40:01
【问题描述】:

我正在尝试开发一个程序来计算给定基本工资的税款,我相信鉴于我拥有的所得税表的格式,应该有一个公式或算法来计算给定基本工资的税款.以下是所得税表的样本格式。我可以进行查找,但我认为算法或公式可能是最好的方法。

Annual Salary   Monthly From    Ranges To   Tax Due
 18,000.00       0.00            1,500.00    0.00
 18,060.00       1,500.01        1,505.00    0.25 
 18,120.00       1,505.01        1,510.00    0.50 
 18,180.00       1,510.01        1,515.00    0.75 
 18,240.00       1,515.01        1,520.00    1.00 
 .....
 27,960.00       2,325.01        2,330.00    41.50 --last line of first format

 28,020.00       2,330.01        2,335.00    41.83 -- start of second format
 28,080.00       2,335.01        2,340.00    42.33 
 28,140.00       2,340.01        2,345.00    42.83 

我能够在我的程序中找到第一部分的公式及其工作发现,但我无法使第二部分工作。

第一部分的公式如下:

每 5.00 或超过 1500 部分的税为 0.25。所以我正在使用

Ceil((monthly−1500)/5) * 0.25

我已经为第二种模式尝试过类似的方法,但到目前为止它不起作用

【问题讨论】:

  • 假设此税表可能每年左右更改阈值,我不会对当前结构和值进行编码。相反,我会向后遍历表格,直到找到范围超过薪水的条目,然后查找税金
  • 你是说要每 5 到 1500 加 0.25,然后应该加 1500 以上的 1/4?例如,800 将是 800/5*0.25 = 40。1800 = 1500/5*0.25 + 300*0.25 = 75 + 75 = 150 ?
  • @LasseV.Karlsen 您必须要求进行澄清,这总结了这种方法有什么问题。当前的税表可能有两个部分。未来几年可能会有一个或四个,或每个波段的非线性税收增加,或其他一些变化。我认为寻求生成算法答案只会增加灵活性,如果有任何性能原因不进行查找,我会吃掉我的帽子。
  • @Paul 这个税表可能暂时不会改变。另外,如果文件有数百万行,您不认为这在计算上可能会很昂贵。
  • @fanbondi,根据我的经验,税收会发生变化。我不相信任何现实的税收制度都会有每 5 美元到 500 万美元的界限。无论如何,更好的查找会将查找时间减少到微不足道的事情(请参阅安德烈的回答)

标签: algorithm formula


【解决方案1】:

您似乎只是想将其抵消一些数字,特别是41.33

41.33 + Ceil((monthly − 2330) / 5) * 0.5

虽然这似乎是一个更好的解决方案:(考虑到处理新版本可能是最省力的)

  • 以某种自动化方式读取数据
  • 对薪资范围进行二分搜索
  • 查询应缴税款

【讨论】:

  • 现在这就是我要使用的。如果税表发生变化,那么我将不得不更改此算法。我认为它与查找方法相同,每当表更改时我都必须更新查找表。
  • "每当表发生变化时,我都必须更新查找表。"不,你不会。正如 Dukeling 所说,您在应用启动时以某种自动方式阅读它。
【解决方案2】:

全自动算法:

  1. 工资/税表的linear fit
  2. interpolation search 获取确切值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多