gpt4 book ai didi

c# - 需要数学库来操作序列/范围

转载 作者:可可西里 更新时间:2023-11-01 10:27:07 24 4
gpt4 key购买 nike

这个问题不太可能对 future 的访客有帮助;它只与一个小的地理区域、一个特定的时刻或一个非常狭窄的情况相关,通常不适用于互联网的全局受众。如需帮助使这个问题更广泛地适用,visit the help center .




9年前关闭。




我有三种数值范围,它们在某个区间内定义,例如:
1. 计数范围(指定区间内的任意值)
2. 周期序列(指定序列开始、步数和步数)
3. 一组精确值(如 1、3、7 等)

我需要联合/相交它们(从 2 到 N 不同类型)并获得优化的结果。显然,上述交集将返回上述类型之一的结果,将它们合并将导致上述类型的 1 到 M 范围。
示例 1:
第一个范围定义为从 5 到 11 的连续范围,第二个是从 2 到 18 的周期性序列,步骤 2(因此,8 个步骤)。
Intersection 将通过步骤 2 返回从 6 到 10 的周期性序列。
Union 将返回三个结果:从 2 到 4 的周期序列和步骤 2,从 5 到 11 的连续范围和从 12 到 18 的周期序列和步骤 2。
示例 2:
第一个范围定义为具有步骤 2 的周期序列 0 到 10,第二个范围定义为具有步骤 2 的周期序列从 1 到 7(因此,3 个步骤)。
Intersection 将返回 null,因为它们不相交。
Union 将返回两个结果:从 1 到 8 的周期序列,步骤 1(注意:优化结果)和精确值 10。
希望我没有犯错:)
好吧,对这类序列的这些操作不应该太复杂,我希望有一个像这里这样的库。请建议任何(将在 C#.NET 中使用)。
谢谢!

更新
回答“我认为我如何使用图书馆”。以上三种类型都可以在编程语言中轻松定义为:
1.连续:{十进制开始;十进制结束;其中 Start 是范围的开始,End 是结束
2. 期刊:{十进制开始;十进制步长;整数计数;其中 Start 是序列的开始,Step 是增量,Count 是步数
3. 一组精确的数字:{decimal[] Values;其中 Values 是一些小数的数组。

当我对上面列出的任何类型的任何两个范围进行交集时,我肯定会得到其中一种类型的结果,例如“连续”和“定期”范围的交叉将导致“定期”、“连续”。和“精确集”将导致精确集“续”。并且“精确”也将返回精确值。相同类型的交集将返回输入类型的结果。
2 个范围的并集有点复杂,但无论如何都会返回上述类型中定义的 2 到 3 个范围。
有了交集/联合函数,我将始终能够在 2 到 N 范围内运行它,并会在输入类型项中获得结果。

最佳答案

首先,遵循之前的其他答案:我不相信有一个标准库:它看起来非常像一个特例。

其次,问题/要求没有充分说明。我将按照问题介绍将 3 种不同类型称为“集合”、“定期”、“连续”。

考虑两个集合 {1,4,5,6} 和 {4,5,6,8}。它们的交点是 {4,5,6}。我们是否必须将其标记为“周期性”是因为该描述适合这种情况,还是因为它是集合的交集而被标记为“集合”?

由此,更一般地说,我们是否需要将“set”-label 的内容更改为“periodic”?毕竟,“周期”是“集合”的特例。

同样,考虑“周期”{4,6,8} 和集合{10,15,16} 的并集。我们是否必须将结果定义为周期 {4,6,8,10} 加上周期{15,16} 或者更确切地说是一个包含所有值的集合,还是另一种类型?

退化情况如何:{3} 是“集合”、“周期性”还是“连续”? “连续”{1-4} 和“集合”{4,7,8} 的交集是什么类型?和连续{1-4}和连续{4-7}的交集?

依此类推:必须清楚如何标记/描述来自联合和/或交集的任何结果,例如 - 两个离散类型(非连续)的交集或并集是否总是一种类型(通常是一个集合,可能是一个周期),或者更确切地说总是一系列周期,或者......

第三,假设上述问题已经解决,我相信你可以按照以下指导方针来实现:

  • 只考虑两种“类型”,即“连续”和“集合”。 “周期”只是“集合”的一种特殊形式,我们可以随时将“集合”标记为“周期”。
  • 定义一个公共(public)基类,并使用适当的派生(重载)方法进行并集、交集和任何您可能需要的方法,以生成 - 例如 - 列表(baseType)作为结果。

  • 逐案实现基本上非常简单 - 假设我的介绍性问题已得到解答。无论最初的问题在何处显得有些“困难”,那只是因为问题和规范还没有很好地定义。

    关于c# - 需要数学库来操作序列/范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12727143/

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