【发布时间】:2012-12-25 15:41:50
【问题描述】:
进度 A 遵循以下规则:
每个值都是加在一起的所有奇数值,包括 N sub i 。
N 次 4。
1+3+5+7 = 16
进度 B 遵循此规则。 取平方根乘以 2 加 1 的上限。从天花板尖齿本身中减去 N。继续添加奇数。
N =33.
天花板(√33) =6.
6*2+1=13.
36-33=3.
3+13 =16。
停止,因为 16 在进程 A 和 B 中。是否可以快速执行此操作? IE。最小的 1 步或 2 步解决方案? java 或通用实现会很方便
*问题*
What is the output you desire? Simply abool saying they do meet? Or do you want the indices at which they do meet, i.e.A[4]=16 andB[17]=16? Or do you just want the number at which they meet, i.e.16? And what if they don't meet exactly? Do you want the indices (or number) before, or after, the intersection? Finally, when or how do you decide to halt, if, say, the two sequences will never meet? (I know in this case they do, but I mean in the general case.)
我期望的输出将是值 16 或者它可能是 B 找到该值的索引,因为两者都是等价的,因为索引只是第 i 个术语。如果他们不见面,我意识到这是一个非终止程序。这种情况我不在乎。
【问题讨论】:
-
你想要的输出是什么?只是一个
bool说他们会 见面?或者你想要他们确实相遇的索引,即A[4]=16和B[17]=16?或者您只是想要他们见面的号码,即16?如果他们不完全见面怎么办?你想要在交叉点之前还是之后的索引(或数字)?最后,如果两个序列永远不会相遇,您何时或如何决定停止? (我知道在这种情况下他们会这样做,但我的意思是在一般情况下。) -
@acheong87。更新了我的帖子来回复你
-
您打算概括什么?显然您已经知道解决方案:
16。 “Progression B”会在你的下一个项目中发生什么变化吗? -
“算术级数”是一个具有严格定义含义的数学术语。您在问题中描述的不是算术级数。
-
@acheong87。啊,是的,进展 B 将是改变的部分。随后的进程 A 每次都是相同的,只要它总是从 1 开始。
标签: java performance algorithm math