1
wesleywaters 2021-03-10 15:33:52 +08:00 via iPhone
公约数
|
2
Muniesa 2021-03-10 15:34:49 +08:00
982÷737≈4÷3
|
3
tcfenix 2021-03-10 15:37:37 +08:00
16/9 = 1.7777777
4/3 = 1.333333 982/737 = 1.33 1080/608 = 1.77 这个除法很明显了吧? |
4
61162833 OP @wesleywaters 谢谢大佬,我在公约数计算器里输入 982,737,得到最小公倍数:723734 最大公约数:1,怎么得出 4:3 呢?
@Muniesa 谢谢,同样 3÷4≈737÷982,但问题是我怎么根据 982x737 推算出 4:3 这两个值? |
5
61162833 OP |
6
61162833 OP 遇见数学的美好,就是头发都想掉了也解决不了
好难啊 |
7
tcfenix 2021-03-10 15:47:14 +08:00
@61162833
https://zh.wikipedia.org/wiki/%E9%95%B7%E5%AF%AC%E6%AF%94_(%E5%BD%B1%E5%83%8F) 1.19:1:"Movietone",早期使用 35 毫米胶片的有声电影,大部分拍摄于 20 至 30 年代,尤其欧洲。光学音效轨被放置于 1.33 框面的侧边,因此减少了画面的宽度。“学院孔径( Academy Aperture )”扩张了胶片的使用面积而能达到 1.37 。此种比例的最佳示例为 Fritz Lang 所拍摄的《 M 》和《 The Testament of Dr. Mabuse 》。在今日的横向画面比例中,它几乎不被使用。 1.25:1:电脑常用的分辨率 1280x1024 即此种比例,这是许多 LCD 显示器的原生分辨率。它也是 4x5 胶片冲洗照片的比例。英国早期的水平 405 线规格使用这种比例,从 1930 至 1950 年代直到被更通用的 4:3 取代为止。 1.33:1:即 4:3,35 毫米无音效轨胶片的原始比例,在电视和视频上都同样常见。也是 IMAX 和 MPEG-2 影像压缩的标准比例。 1.37:1:35 毫米全屏的有音轨胶片,在 1932 年到 1953 年间几乎是通用的。作为“学院比例”它在 1932 年被美国电影艺术学院立为标准,至今仍然偶尔使用。亦是标准 16 毫米胶片的比例。 1.43:1:或为 1.44:1,IMAX 70 毫米胶片的水平格式。 1.5:1:35 毫米胶片用于静物拍摄的比例。亦用于较宽的电脑显示( 3:2 ),曾用于苹果电脑的 PowerBook G4 15.2 英寸的屏幕,分辨率为 1440x960 。这个比例也用于苹果电脑的 iPhone 产品。(微软 Surface Pro 亦用此长宽比触屏携带式平板电脑) 1.56:1:即宽屏的 14:9 比例。是为 4:3 和 16:9 之间的折衷比例,常用于拍摄广告或者在两种屏幕上都会放映的影像,两者之间的转换都只会产生微量的剪裁。 1.6:1:即 16:10 ( 8:5 ),是电脑宽屏幕常见的比例,用于 WSXGAPlus 、WUXGA 和其他种分辨率。因为它能同时显示两个完整页面(左右各一页),所以十分受欢迎。[1] 1.66:1:35 毫米欧洲宽屏标准;亦为 Super 16 毫米胶片的比例( 5:3,有时精确的标志为 1.67 )。 1.75:1:早期 35 毫米胶片的宽屏比例,最主要是米高梅影业在使用,但已经被抛弃。 1.77:1:即所谓 16:9 (= 42:32 ),标准宽屏。使用于高清晰度( HD )电视和 MPEG-2 的影像压缩上,也是现在电脑屏幕、电视、手机最常用的比例。 1.85:1:35 毫米胶片,美国和英国用于拍摄在戏院放映的电影的比例,即是 37:20 。在四齿格的框面中画面大约占了三格高,也可直接使用三格高拍摄,以节省胶片成本。 2:1:主要在 1950 和 60 年代早期为环球影业所使用,还有派拉蒙影业的一些 VistaVision 视频;也是 SuperScope 诸多比例中的一种。现代启示录的 DVD 版本、侏罗纪世界的 Blu-ray 版本亦使用这种比例; 2017/2/26 LG 推出首款 QHD+ 分辨率 2:1 (宣传为 18:9 )屏幕的智能手机 LG G6[4]。 2.2:1:70 毫米胶片标准。在 1950 年代为了 Todd-AO 这部片而开发的。另有 2.21:1 在 MPEG-2 规格中写明但未使用。 2.35:1:1970 年以前用 35 毫米胶片拍摄的横向影像,由 CinemaScope 和早期的 Panavision 所使用,比例大约是 47:20 。横向拍摄的标准慢慢地改变,现代的横向制作实际上已经是 2.39:1[1],但因传统而仍常被称为 2.35:1 。(注意所谓的“anamorphic”指的是胶片上,限于四个齿格内的“学院区域”的影像,比起其他高度较高的影像的压缩程度。) 2.370:1:即所谓 21:9,实际值是 64:27 (= 43:33 )。在 2009 年至 2012 年间,有部分电视曾用这种长宽比制成,并以“21:9 电影级屏幕”作招徕。然而这种长宽比仍可在高端显示器上看到,有时也被称为 UltraWide 显示器。2019/2/26 SONY 在香港举行发布会,推出两款 21:9 全新比例的智能手机 Xperia 10 和 Xperia 10 Plus 。 2.39:1:1970 年以后的 35 毫米横向影像,比例大约是 43:18 。电影称使用 Panavision 或 Cinemascope 系统拍摄即表示此种比例。 2.4:1:蓝光光盘加整电影为 2.40:1,即是 12:5[1]; 2.55:1:CinemaScope 系统在未加音效轨之前的原始比例,这也是 CinemaScope 55 的比例。 2.59:1:Cinerama 系统完全高度的比例(三道以特别方式拍摄的 35 毫米视频投影成一个宽屏画面)。 2.76:1:MGM Camera 65 ( 65 毫米胶片加上 1.25x 倍的横向压缩),只使用于 1956 年到 1964 年间的一些视频,例如 1959 年的 《宾汉》( Ben-Hur )。 4:1:Polyvision,使用三道 35 毫米胶片并排同时放映。只使用于一部视频,Abel Gance 的 Napoléon ( 1927 年)。 你自己维护一个长宽比的词典咯, 不然怎么办? |
8
jmc891205 2021-03-10 15:48:06 +08:00 1
你自己先把常见的分辨率的长宽比存好
然后看输入的长宽比最靠近哪个就是哪个分辨率 |
9
tcfenix 2021-03-10 15:51:57 +08:00
这问题跟数学没有任何关系,
设 宽是 W 长是 L L/W = 长宽比 比如我们得到一个长宽比是 1.5, 然后不告诉你 L 也不告诉你 W 是**不可能**得到答案的, 两元一次方程就这点条件, 你可以得到无数个解, 这是初中数学吧? 所以必须用长跟宽去算比例 |
10
TomatoYuyuko 2021-03-10 15:54:39 +08:00
我的理解是 4:3 这种属于“标准”,根据标准来制作具体的尺寸比例,但不可能绝对吻合,多几厘米少几厘米是正常的,你记住常见的几种比例的商是多少,然后遇到具体尺寸,直接比较两者的商就知道了,取相近的值
|
11
61162833 OP |
12
jmc891205 2021-03-10 15:57:35 +08:00
“然后看输入的长宽比最靠近哪个就是哪个分辨率”
最靠近 最靠近 最靠近 |
14
imn1 2021-03-10 15:59:03 +08:00
如果纯粹是视象尺寸范畴,合适的做法不是直接计算,而是分级
例如高度分 320/480/720/1080/1280...,宽度类似 然后找出组合就是几比几了 扩展,竖着播放的写成 9:16,3:4 么? |
16
61162833 OP @jmc891205 这好像是一个笨方法啊,难道要做一个表格去一一遍历吗?
比如我们都知道一个 16:9 分辨力,拿现在给一个 32x18,难道现在的数学就没办法推算出 16:9 这两个数字了吗? (我知道 32x18 可以用 32/2 与 18/2 得出 16:9 这个结果,这就是我想要的,可如果数字是 1920x1080 怎么算除 16:9 呢?) |
17
wutiantong 2021-03-10 16:11:20 +08:00 2
???什么鬼问题???
|
18
61162833 OP 不好意思,上面错字一堆,太难了
修改错字版本: 比如我们都知道一个 16:9 比例,那现在给一个 32x18,难道现在的数学就没办法推算出 16:9 这两个数字了吗? (我知道 32x18 可以用 32/2 与 18/2 得出 16:9 这个结果,这就是我想要的,可如果数字是 1920x1080 怎么算出 16:9 呢?) 上面的回复都是说做一个表格,16/9 约等于几,然后 1920/1080 约等于几,这样去遍历对比,可我想知道的是 16 与 9 这两个数字,也就是根据 1920 与 1080 这两个值,算出 16 与 9 这两个值,而不是根据表格表格遍历 |
19
washbrain 2021-03-10 16:13:32 +08:00 2
32:18 是很容易推出 16:9 的....
记 a 和 b 的最大公约数为(a,b) 32:18 = 32/(32,18) : 18/(32,18) = 32/2 : 18/2 = 16:9 1920:1080 = 1920/(1920,1080) : 1080/(1920,1080) = 1920/120 : 1080/120 = 16:9 |
20
washbrain 2021-03-10 16:15:31 +08:00 1
本质上你要做的就是约分,把分数变为最简分数,分子分母同时除以最大公约数....
|
21
washbrain 2021-03-10 16:17:26 +08:00 1
另外, 982:737 并不等于 4:3,这个是近似到常见比例
|
22
61162833 OP |
23
tcfenix 2021-03-10 16:23:52 +08:00 1
@61162833
前面数学公式我也给你推导了, 只是给一个长宽比从数学上是算不出来是哪两个数字相除才能得到它的......只能靠自己维护一个表..... |
24
auroraccc 2021-03-10 16:24:38 +08:00 1
可以用辗转相除法先算出最大公约数,然后再同时除以这个公约数就好了
ex (JS): var 宽 = 1920 var 高 = 1080 var 辗转相除法 = (m , n) => m % n === 0 ? (n) : 辗转相除法(n, m % n); var 最大公约数 = 辗转相除法(宽, 高) var 长宽比 = `${宽 / 最大公约数}:${高 / 最大公约数}` console.log(长宽比) // 16:9 |
25
61162833 OP |
29
Tumblr 2021-03-10 16:33:46 +08:00 1
@61162833 #17 看得累 shi 了。。。这不就是个「约分」么。。。
不过有些不是严格意义上的 4:3 或 16:9,遇到这种就除掉之后找最近的比例了。 |
30
61162833 OP 我表达能力水平低,不好意思各位!!!
|
31
Mountain 2021-03-10 16:46:54 +08:00
还是好人多,楼主加油
|
32
crab 2021-03-10 16:53:51 +08:00
最大公约数
|
33
jmc891205 2021-03-10 17:20:04 +08:00 via iPhone
哈哈哈😄你不想查表
那请问你要怎么把 982/737 约分 |
34
flineqaq 2021-03-10 17:24:25 +08:00
两个数分别质因数分解,去掉相同的质因数,剩下的相乘。这问题需要思考吗。。?
|
35
otakustay 2021-03-10 18:11:01 +08:00 1
首先指定一个“到整数的允许误差”,比如 0.01 ,即 4.99-5.01 都算是整数 5
然后拿到比例,比如前面提到的 1.666666666666667 再把这个数组往整数倍乘,找到某个倍数的时候它和一个整数的误差在允许误差范围内 1.666666666666667 * 1 = 1.666666666666667,与 1 的误差有 0.66 ,与 2 的误差有 0.34 ,所以它不行 1.666666666666667 * 2 = 3.333333333,两端误差分别是 0.33 和 0.67 ,也不行 1.666666666666667 * 3 = 5,非常标准的整数 这个时候,参与运算的 2 个数,3 和 5,就是对应的比例了,也就是说对应 5:3 用同样的方法,1920x1080,先算出 1920/1080=1.777777778,再把 1.777777778 往上乘,最后在乘以 9 的时候能得到 16.000000002,在误差范围内,所以是 16:9 你可以设定一个乘数的最大值,比如一直乘到 120 都找不到一个整数,直接认为这比例没法算 |
36
otakustay 2021-03-10 18:16:36 +08:00 1
对应到 JS 代码的版本:
https://gist.github.com/otakustay/37d28c2003a6b8e9a4179a8d662463df 对于计算机来说,跑 120 次应该问题不大 |
37
kaiki 2021-03-10 18:22:08 +08:00
除了 16:10 都是公约数,因为它不写作 8:5 是为了和 16:9 作对比更方便人们理解。
其他的比例只能按照预设的比例找最近的了 |
38
lululau 2021-03-10 18:23:47 +08:00
982 除以 737 = 4:3 ?
如果你是 80 后,你父母可能违法了,义务教育法。。。 |
39
wolfie 2021-03-10 18:32:26 +08:00
1L 不就是正确答案吗?
|
40
gwy15 2021-03-10 18:32:41 +08:00 1
对于 a / b,先连分数展开到五六位,然后依次截断,选一个你觉得顺眼的就行。
比如 982/737,连分数展开是 1, 3, 122, 2,依次截断分别是 1, 4/3, 489/367, 982/737,你觉得 4/3 顺眼就选这个 比如 1080/608,连分数展开是 1, 1, 3, 2, 8,依次截断分别是 1, 2, 7/4, 16/9, 135/76,选个你顺眼的。 |
43
weyou 2021-03-10 18:59:47 +08:00 via Android
一个小学 5 年级学的“约分”就能解决的问题讨论了这么多楼,v2 这是怎么了
|
44
luhe 2021-03-10 19:53:55 +08:00 via iPhone
还是吃得太饱了……
|
45
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 |
46
Building 2021-03-10 20:03:55 +08:00 via iPhone
这不是取决于你的内容是要 content_fit 还是要 content_fill 来显示吗?
|
47
Mutoo 2021-03-10 20:25:24 +08:00
由于很多屏幕的像素是取整的,所以不可能完全符合整数上的 4:3
最好的办法还是查表法,算出 ratio 然后最近似的结果,js 代码如下: https://gist.github.com/mutoo/0c4c388749fedd22f16375c07f8cae40 |
48
lance6716 2021-03-10 20:53:36 +08:00 via Android
敢问楼主学历…
|
49
FucUrFrd 2021-03-10 23:38:34 +08:00 via Android
楼主是小学毕业吗
相除小数接近 1.3333 就是 4/3 接近 1.777 就是 16/9 其他比例自己插队 |
50
nekochyan 2021-03-11 15:13:56 +08:00
我不太明白你这算这个来是干嘛的,如果是做适配,也用不到这个,如果只是单纯的算是 4:3 还是 16:9,那你只能屏幕的分辨率相除去比较,毕竟很多屏幕并不一定是 4:3 或 16:9 的
|
51
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 |
52
Alexhex 2021-03-11 15:22:36 +08:00
感觉他想要的是一个一般性的将两个整数化为最小互质数比的算法。
我能想到的是,对 AB 两个数进行质因数分解后,去除两个数组中相同元素后相乘。当数字很大的时候不确定有没有更好从的算法。 当然如果只是追究屏幕分辨率,鉴于分辨率应该不会超过 10W 这个数量级,算法效率应该不太重要。维护一个质数数列除到 根号 N 然后写数组去相同元素应该够了。 |