java - 用伪代码表达两个变量之间的关系?
问题描述
我有一些要分析的伪代码:
public static void test(float z) {
float y = 0;
for (float i = 1; i <= z; i++) {
if (y < z) {
y = 4 * i * i + 6;
}
}
return y;
}
从功能上,我明白y = 4i^2 + 6
每当y < z
. 但是,我无法捕捉方程中 y 和 z 之间的关系。我觉得它可以被捕获为一个地板函数(阶跃函数)——对于 z 中的某个数字范围,y 将具有该指定值。
解决方案
y
变得大于z
(并停止改变)第一个i
使得2*i^2 + 3 > z
. 换句话说,一个极小i > sqrt((z - 3) / 2)
值,即floor(sqrt((z - 3)/2)) + 1
。现在如您所知i
,计算y
。
推荐阅读
- c# - .NET MVC Core 3.1 本地化 UrlHelper 不采用当前文化
- sql - 根据另一列的条件值添加不同的列值
- excel - 隐藏任何大于 1 的值
- php - 检查产品名称中特定字符串的变体项目以及 WooCommerce 中允许的国家/地区
- spring-data-mongodb - 如何在spring data mongodb中为存储库方法上的@Query注释绑定@Param?
- python - 能够使用 ffmpeg 和 python 读取当前音频帧
- php - 如何实现 php imagecreatetruecolor 从 php 5 到 php 7
- string - Julia 中的 Python 风格的多行字符串延续
- javascript - 是否可以停止正在运行的功能(不仅仅是在开始执行之前清除超时)?
- google-apps-script - 应用程序脚本仅获取值内容