我需要在一个固定大小的长方形里面摆放N个正方形
正方形必须边长一致,摆放完成后,要尽可能占满长方形内部的空间
如何计算出最佳的正方形边长?
好久没来提问了,我没做太多尝试,数学太差。
如果可以的话,希望有人顺便告诉我这是几年级的数学。
有个平凡解,1x1像素正方形平铺开,100%使用率 ;)
Java:
class HelloWorld { public static void main(String[] args) { System.out.println(calcSide(1024, 720, 220)); } public static int calcSide(int width, int height, int len) { int side; int initCols = 1; while (true) { side = width / initCols; int m = len % initCols; int c = len / initCols; if (c * side < (m != 0 ? side: m) + height) { break; } initCols++; } return side; }}
Js:
function calcSide(width, height, len) { let side; let initCols = 1; while (true) { side = width / initCols; let m = len % initCols; let c = len / initCols; if (c * side < (m != 0 ? side : m) + height) { break; } initCols++; } return side;}console.log(calcSide(1024, 720, 220))
正方形的边长应该是长方形长和宽的最大公因数。
最大公因数相关知识应该是小学五年级的内容。
看错题目了。
如题意,在长为\(W\),宽为\(H\)的长方形中放置\(N\)个正方形,求正方形边长\(a\)的最大值。
即,求解不等式:
$$\lfloor \frac W a \rfloor \cdot\lfloor \frac H a \rfloor \ge N$$
使用二分法求解:
function calc_length(w: number, h: number, n: number) { let l = 0, r = Math.sqrt((w * h) / n) while (r - l > Number.EPSILON) { const m = (l + r) / 2 if (Math.floor(w / m) * Math.floor(h / m) >= n) l = m else r = m } return l}
如果我已经提交过了,但又有了一些新修改希望加入提交,但又不想再创建一个提交,我应该怎么做? 我知道可以 但这样操作很繁琐. 亦或者 但这样得把之前打印过的评论再输入一遍很麻烦感觉. 我觉得肯定有一条指令一行就能把这事搞定?
在这里,同一个时钟周期内,a被赋值的语句和c被赋值的语句的执行的先后顺序未必确定对不对? 我希望无论如何都是c<=a先执行,这样的话应该怎么写代码呢?我知道写在一个begin块里用=就行但我想知道不同always块内的情况,,, 刚开始搞这玩意不太明白,恳请赐教.
因此,我在为我的数据库提出实体关系时遇到了一些麻烦,但是我已经完成了一些设计过程,并且是最低口径的。将创建数据库,以便学生可以有许多课程的许多对许多关系(显然我知道)。数据库需要每天跟踪家庭作业和出勤率。但是,课程可以只是一周中的一天或许多天。 顾问- 学生- 课程- 学生课程- 这里我陷入了困境,我想创建一个日历表,但我如何将数据关联到作业表和出勤率。如有任何建议,欢迎批评指正。
我构建了一个简单的Spring Web应用程序。我有一个带有@RequestMapping的简单@控制器,但当我运行它时,我不能访问URL: 我做错了什么?
有两张表,分别储存产品信息与检测信息 检测信息表procheck中pro_id关联到产品信息表pro中的id,每个产品对应有多个检测信息记录 我现在需要把某个公司(产品表中company_id)生产的所有产品的最新一次检测报告调出来? 但是得出的结果却是: 全部给我找了出来,而我真正需要的是箭头上的三条即可。 求SQL语句.....