gpt4 book ai didi

c# - 交货签发算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:51:05 26 4
gpt4 key购买 nike

我需要获得 DispenseAlgorithm 的继承类。它必须实现计算交货签发的算法。该算法必须提供均匀的标称消耗。

public abstract class DispenseAlgorithm
{
public abstract Dictionary<int, int> CalculateDispense(CassetteData[] data, int summ);
}

public class CassetteData
{
public int UID { get; set; }
public int Nominal { get; set; }
public int Count { get; set; }

public CassetteData() { }
}

类 CassetteData – 提供有关当前面额集的信息(Nominal - 面额的值(value),Count - 面额的数量,UID - 面额集的唯一标识符)。

CalculateDispense 方法有 2 个参数: - 当前时间面额集可用(CassetteData{] 数据) - 我们支付(或赠送)现金返还的总和。

CalculateDispense 方法必须返回对象 Dictionary,其中 key - 面额集的唯一标识符,以及 value - 需要支付的面额数量。

如意结果:面额必须在交割的部分时段尽可能均匀地结束

例如:我们有面额集:

1        10 $                100 denomination
2 50 $ 100 denomination
3 100 $ 100 denomination

我们需要支付 800 美元

好的结果:

1     5 items 
2 5 items
3 5 items

因为 800 = 10 * 5 + 50 * 5 + 100 * 5

不好的结果:

1        0 items 
2 0 items
3 8 items

因为 800 = 10 * 0 + 50 * 0 + 100 * 8

Denomination 是指钱、纸币、切票、银行票据、债券

发货是指发放返现

Nominal - par, face value, par value, nominal value, rating

最佳答案

如果我正确理解了你的问题,你正在寻找一个表示一组整数 Y 的算法,我怎样才能生成一个值 x 使得 x = a1*y1 + a2*y2 + a3*y3 + 。 .. 其中 y1, y2, y3,... 是 Y 的元素,a1, a2, a3,... 是最小间隔的整数,或者更确切地说是尽可能“偶数”的整数。

如果这是正确的,那么您需要根据 a 定义如何衡量最佳结果。你提到你有一个固定的每个音符池,因此你想尽量保持它的水平,但你如何衡量“最佳”最终结果?

作为起点,我建议查看 this question及其响应,因为它们似乎是您所追求的那种东西,但需要注意的是您还需要保持面额水平。

您还可以考虑研究线性规划,因为这似乎是一个可以用这种形式表达并相应解决的问题。在一组约束内工作的同时最大化和最小化值就是它的全部意义,因此很可能对您有所帮助。

希望这可以作为解决您的问题的有用起点

关于c# - 交货签发算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3559101/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com