这个问题不太可能对 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}的交集?
依此类推:必须清楚如何标记/描述来自联合和/或交集的任何结果,例如 - 两个离散类型(非连续)的交集或并集是否总是一种类型(通常是一个集合,可能是一个周期),或者更确切地说总是一系列周期,或者......
第三,假设上述问题已经解决,我相信你可以按照以下指导方针来实现:
关于c# - 需要数学库来操作序列/范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12727143/
当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/
我注意到像bundler这样的项目在每个specfile中执行requirespec_helper我还注意到rspec使用选项--require,它允许您在引导rspec时要求一个文件。您还可以将其添加到.rspec文件中,因此只要您运行不带参数的rspec就会添加它。使用上述方法有什么缺点可以解释为什么像bundler这样的项目选择在每个规范文件中都需要spec_helper吗? 最佳答案 我不在Bundler上工作,所以我不能直接谈论他们的做法。并非所有项目都checkin.rspec文件。原因是这个文件,通常按照当前的惯例,只
我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121
请帮助我理解范围运算符...和..之间的区别,作为Ruby中使用的“触发器”。这是PragmaticProgrammersguidetoRuby中的一个示例:a=(11..20).collect{|i|(i%4==0)..(i%3==0)?i:nil}返回:[nil,12,nil,nil,nil,16,17,18,nil,20]还有:a=(11..20).collect{|i|(i%4==0)...(i%3==0)?i:nil}返回:[nil,12,13,14,15,16,17,18,nil,20] 最佳答案 触发器(又名f/f)是
我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que
我刚刚被困在这个问题上一段时间了。以这个基地为例:moduleTopclassTestendmoduleFooendend稍后,我可以通过这样做在Foo中定义扩展Test的类:moduleTopmoduleFooclassSomeTest但是,如果我尝试通过使用::指定模块来最小化缩进:moduleTop::FooclassFailure这失败了:NameError:uninitializedconstantTop::Foo::Test这是一个错误,还是仅仅是Ruby解析变量名的方式的逻辑结果? 最佳答案 Isthisabug,or
如何在ruby中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL
假设我有这个范围:("aaaaa".."zzzzz")如何在不事先/每次生成整个项目的情况下从范围中获取第N个项目? 最佳答案 一种快速简便的方法:("aaaaa".."zzzzz").first(42).last#==>"aaabp"如果出于某种原因你不得不一遍又一遍地这样做,或者如果你需要避免为前N个元素构建中间数组,你可以这样写:moduleEnumerabledefskip(n)returnto_enum:skip,nunlessblock_given?each_with_indexdo|item,index|yieldit
我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha
给定一个复杂的对象层次结构,幸运的是它不包含循环引用,我如何实现支持各种格式的序列化?我不是来讨论实际实现的。相反,我正在寻找可能会派上用场的设计模式提示。更准确地说:我正在使用Ruby,我想解析XML和JSON数据以构建复杂的对象层次结构。此外,应该可以将该层次结构序列化为JSON、XML和可能的HTML。我可以为此使用Builder模式吗?在任何提到的情况下,我都有某种结构化数据-无论是在内存中还是文本中-我想用它来构建其他东西。我认为将序列化逻辑与实际业务逻辑分开会很好,这样我以后就可以轻松支持多种XML格式。 最佳答案 我最