数学难题,如何计算长宽比例?

2021-03-10 15:30:38 +08:00
 61162833
我们知道分辨率有 16:9,也有 4:3

比如几组分辨为:982x737 、1080x608,怎么计算出来这是什么比例的?

也就是怎么推算出 982x737 = 4:3
3431 次点击
所在节点    问与答
53 条回复
61162833
2021-03-10 18:52:06 +08:00
@otakustay 谢谢!说的非常清楚,理解了
61162833
2021-03-10 18:53:32 +08:00
@gwy15 谢谢,高级,我不知道连分数是什么,惭愧
weyou
2021-03-10 18:59:47 +08:00
一个小学 5 年级学的“约分”就能解决的问题讨论了这么多楼,v2 这是怎么了
luhe
2021-03-10 19:53:55 +08:00
还是吃得太饱了……
dontmind
2021-03-10 19:57:36 +08:00
1/1 < 982/737 < 2/1
1/1 < 982/737 < (2+1)/(1+1) = 3/2 982/737 - 3/2= -0.16757
1/1 < 982/737 < (2+1)/(1+1) = 4/3 982/737 - 4/3 = -0.0009

1/1 < 1080/608 < 2/1
3/2 = (1+2)/(1+1) < 1080/608 < 2/1 1080/608 - 3/2 = 0.27631578947
5/3 = (3+2)/(1+1) < 1080/608 <. 2/1 1080/608 -5/3=0.1096
7/4 = (2+5)/(3+1) < 1080/608 < 2/1. 1080/608 -7/4=0.02631
7/4 < 1080/608 < (7+2)/(4+1) =9 /5 1080/608 -9/5 =-0.02368
7/4 < 1080/608< (7+9)/(4+5) =16 /9 1080/608 -16/9 = -0.00146
Building
2021-03-10 20:03:55 +08:00
这不是取决于你的内容是要 content_fit 还是要 content_fill 来显示吗?
Mutoo
2021-03-10 20:25:24 +08:00
由于很多屏幕的像素是取整的,所以不可能完全符合整数上的 4:3
最好的办法还是查表法,算出 ratio 然后最近似的结果,js 代码如下:

https://gist.github.com/mutoo/0c4c388749fedd22f16375c07f8cae40
lance6716
2021-03-10 20:53:36 +08:00
敢问楼主学历…
FucUrFrd
2021-03-10 23:38:34 +08:00
楼主是小学毕业吗

相除小数接近 1.3333 就是 4/3

接近 1.777 就是 16/9


其他比例自己插队
nekochyan
2021-03-11 15:13:56 +08:00
我不太明白你这算这个来是干嘛的,如果是做适配,也用不到这个,如果只是单纯的算是 4:3 还是 16:9,那你只能屏幕的分辨率相除去比较,毕竟很多屏幕并不一定是 4:3 或 16:9 的
Alexhex
2021-03-11 15:19:09 +08:00
我觉得楼主还是挺有数学天赋的。楼上不少人可能低估了这个问题的难度,参看:

https://zh.wikipedia.org/zh-cn/%E6%95%B4%E6%95%B0%E5%88%86%E8%A7%A3
Alexhex
2021-03-11 15:22:36 +08:00
感觉他想要的是一个一般性的将两个整数化为最小互质数比的算法。

我能想到的是,对 AB 两个数进行质因数分解后,去除两个数组中相同元素后相乘。当数字很大的时候不确定有没有更好从的算法。

当然如果只是追究屏幕分辨率,鉴于分辨率应该不会超过 10W 这个数量级,算法效率应该不太重要。维护一个质数数列除到 根号 N 然后写数组去相同元素应该够了。
hitmanx
2021-03-11 15:34:05 +08:00
@Alexhex 你看一下 4 楼,不是最大公约数的问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/760354

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX