gpt4 book ai didi

function - 如何计算 Racket 中两个合约的盈亏平衡点

转载 作者:行者123 更新时间:2023-12-01 03:16:57 25 4
gpt4 key购买 nike

作为 Racket 任务的一部分,我有一项我绝对没有得到的任务。由于这是作业,我宁愿不直接获得解决方案,以避免抄袭带来的任何麻烦,而宁愿尝试在您的帮助下编写代码。

Given two phone-contracts, implement a function that calculates at what number of sent SMS one contract gets more expensive than the other. If one contract is always cheaper than the other (no matter how many SMS sent), return false.



契约(Contract)被描述为基本费用、可能在契约(Contract)第二年发生变化的月费(契约(Contract)的期限总是两年)、短信费用以及契约(Contract)包含多少免费短信。因此,我将契约(Contract)结构编写如下:
(define-struct contract
(basefee monthlyfee1 monthlyfee2 smsfee freesms))

之前,我已经实现了两个功能。一,计算与可能的免费短信和给定数量的短信相关的契约(Contract)总成本:
(define (contract-total ctr sms)
(cond
[(= (contract-freesms ctr) 0) (+ (contract-basefee ctr)
(* 12 (contract-monthlyfee1 ctr))
(* 12 (contract-monthlyfee2 ctr))
(* (contract-smsfee ctr) sms))]
[(>= (contract-freesms ctr) sms) (+ (contract-basefee ctr)
(* 12 (contract-monthlyfee1 ctr))
(* 12 (contract-monthlyfee2 ctr)))]
[(<= (contract-freesms ctr) sms) (+ (contract-basefee ctr)
(* 12 (contract-monthlyfee1 ctr))
(* 12 (contract-monthlyfee2 ctr))
(* (- sms (contract-freesms ctr))
(contract-smsfee ctr)))]))

二,比较两个合约并返回一个 bool 值是否第一个合约比给定数量的短信的第二个便宜:
(define (cheaper? ctr1 ctr2 sms)
(< (contract-total ctr1 sms)
(contract-total ctr2 sms)))

我现在正在努力实现那个非常收支平衡的功能,它告诉我第二份契约(Contract)比第一份契约(Contract)便宜多少短信。函数的签名是

Contract Contract -> MaybeSMS



因此,我的第一个想法是在盈亏平衡图(可以说是 0 条短信)开始时实现一个条件条款,检查两个合约中哪一个更便宜。

我如何从这里开始?我认为其他条件条款(特别是条件)需要具有不同的更便宜? - 功能,但由于在我的签名中没有给出短信数量,我不确定如何实现那个。

最佳答案

做个柜台s从 1, 2, 3 开始计数......

然后打电话

(cheaper? ctr1 ctr2 s)

通知何时 cheaper?从真翻转为假(反之亦然)。

关于function - 如何计算 Racket 中两个合约的盈亏平衡点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48223707/

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