java - 在java面试中写一个co relation

标签 java algorithm logic

<分区>

我在 java 面试中被问到一个与 java 无关的问题,它基于逻辑。 我得到了一个场景::假设您必须将站点完全下载到本地驱动器,但站点内容随时间变化。要进行更新,我们必须根据其内容的变化一次又一次地下载它。假设有一个命令每次都告诉我们网站内容的百分比变化。通过它我们可以计算网站每小时的百分比变化。我们得到了百分比变化的最佳值,当达到该值时我们应该下载内容。我们必须计算适当的时间,之后我们将检查要下载的站点。此时我们的实际百分比变化应该最接近所需值。就像我们让线程进入休眠状态(x)一样。 ""x=? ""要计算 x,我们必须定义与内容变化百分比的相关关系。因为每次变化的百分比也不一样。比如从上午 9 点到 10 点,百分比变化是 10%,但是从上午 10 点到 11 点,它变成了 50%。所以根据这个平均百分比变化,平均变化将是 30% sleep 时间也应该有所不同,以便它对性能是最佳的。例如。如果当前变化率较小(根据对先前变化的平均值计算),则时间应增加。如果变化率很高,下载时间应该降低。为此,我们必须定义 avg 之间的相关关系。 %变化和 sleep 时间。 简单地说:我们必须根据命令计算的实际百分比变化和百分比变化的期望值来预测下一次迭代的 sleep 时间。这样在睡了计算时间之后。下次我们的百分比变化将最接近所需值。

最佳答案

我认为我们不需要 sleep 时间与平均下载量之间的关系。我们可以有两个线程。一个线程可以下载内容,另一个线程可以检查自上次通知发送后特定时间的百分比变化。下载线程可以等待,计算百分比变化的线程可以每小时计算一次当前变化是多少。如果是 100%,它可以通知下载线程。执行计算的线程在检查当前百分比与上次相比有多少变化期间可以 hibernate 60 分钟。然后它可以计算自上次发送通知以来的当前百分比变化(这意味着在通知时它还将清除计数器或任何保持相对于上次通知发送时的百分比变化当前状态的任何东西)。

我可能会回答这个问题。

关于java - 在java面试中写一个co relation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25381202/

相关文章:

java.lang.OutOfMemoryError : Java heap space

java - 如何将字节数组转换为字节数组

JavaFX 的东西不会引用

sql - 如何计算SQL Server中超集中集合的现有值数

java - 将原始类对象转换为特定类对象

ruby - Rails 算法后内存泄漏?

java - 两个二叉搜索树的联合

java - 该算法中使用了什么数据结构?

java - 如何反转并破坏数组以形成新的最大化数组?

prolog - Prolog 中的失败否定和逻辑单调性?