gpt4 book ai didi

f# - 如何在 F# 中对元组中的 "any three elements"求和

转载 作者:行者123 更新时间:2023-12-02 12:00:44 26 4
gpt4 key购买 nike

我最近开始学习如何使用 F# 进行编程,并且有一项作业让我非常头疼。

我必须创建一个函数,它接受两个参数,一个整数和一个五元素整数元组,如果该元组的任何三个元素的总和大于第一个参数,则返回 true,否则返回 false。

我开始这样设计我的代码

{
let t3 = (1, 2, 3, 4, 5)
let intVal = 1
let check intVal t3 =
for t3
if (*sum of any three elements*) > intVal then true
else false
}

但此时我陷入困境,不知道如何继续。

最佳答案

简单的方法定义 - 对元组元素进行排序并与最后三个元素的总和进行比较(升序排序):

let inline isAnyThreeGreaterThan2 limit (x1, x2, x3, x4, x5) = 
[x1;x2;x3;x4;x5] |> List.sort |> Seq.skip 2 |> Seq.sum > limit

示例:

isAnyThreeGreaterThan2 15 (1, 2, 5, 5, 5) |> printfn "%A"
isAnyThreeGreaterThan2 14 (1, 2, 5, 5, 5) |> printfn "%A"
isAnyThreeGreaterThan2 15 (1, 2, 5, 5, 6) |> printfn "%A"
isAnyThreeGreaterThan2 15 (1, 2, 3, 4, 5) |> printfn "%A"
isAnyThreeGreaterThan2 12 (1, 2, 3, 4, 5) |> printfn "%A"
isAnyThreeGreaterThan2 11 (1, 2, 3, 4, 5) |> printfn "%A"

打印:

false
true
true
false
false
true

链接:

https://dotnetfiddle.net/7XR1ZA

关于f# - 如何在 F# 中对元组中的 "any three elements"求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32763816/

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