跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 数学难题,如何计算长宽比例?
未分類
27 3 月 2021

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

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

資深大佬 : 61162833 16

我们知道分辨率有 16:9,也有 4:3

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

也就是怎么推算出 982×737 = 4:3

大佬有話說 (53)

  • 資深大佬 : wesleywaters

    公约数

  • 資深大佬 : Muniesa

    982÷737≈4÷3

  • 資深大佬 : tcfenix

    16/9 = 1.7777777
    4/3 = 1.333333

    982/737 = 1.33

    1080/608 = 1.77

    这个除法很明显了吧?

  • 主 資深大佬 : 61162833

    @wesleywaters 谢谢大佬,我在公约数计算器里输入 982,737,得到最小公倍数:723734 最大公约数:1,怎么得出 4:3 呢?

    @Muniesa 谢谢,同样 3÷4≈737÷982,但问题是我怎么根据 982×737 推算出 4:3 这两个值?

  • 主 資深大佬 : 61162833

    @tcfenix 谢谢,得出 982/737 = 1.33 ,怎么根据 1.33 得出 4:3 呢?

    4:3 只是一个例子,如果除的结果是 1.53 ,这是什么尺寸的分辨率?

  • 主 資深大佬 : 61162833

    遇见数学的美好,就是头发都想掉了也解决不了

    好难啊

  • 資深大佬 : tcfenix

    @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:电脑常用的分辨率 1280×1024 即此种比例,这是许多 LCD 显示器的原生分辨率。它也是 4×5 胶片冲洗照片的比例。英国早期的水平 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 英寸的屏幕,分辨率为 1440×960 。这个比例也用于苹果电脑的 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 年)。

    你自己维护一个长宽比的词典咯, 不然怎么办?

  • 資深大佬 : jmc891205

    你自己先把常见的分辨率的长宽比存好
    然后看输入的长宽比最靠近哪个就是哪个分辨率

  • 資深大佬 : tcfenix

    这问题跟数学没有任何关系,

    设 宽是 W 长是 L

    L/W = 长宽比
    比如我们得到一个长宽比是 1.5, 然后不告诉你 L 也不告诉你 W 是**不可能**得到答案的, 两元一次方程就这点条件, 你可以得到无数个解, 这是初中数学吧?

    所以必须用长跟宽去算比例

  • 資深大佬 : TomatoYuyuko

    我的理解是 4:3 这种属于“标准”,根据标准来制作具体的尺寸比例,但不可能绝对吻合,多几厘米少几厘米是正常的,你记住常见的几种比例的商是多少,然后遇到具体尺寸,直接比较两者的商就知道了,取相近的值

  • 主 資深大佬 : 61162833

    @tcfenix @jmc891205 所以都要遍历吗?如果是表里没有的分辨率呢?

    比如 1920×1152,目前能做到的就是得到 1920÷115≈1.666666666666667,没法告诉我这是几比几的?

  • 資深大佬 : jmc891205

    “然后看输入的长宽比最靠近哪个就是哪个分辨率”

    最靠近
    最靠近
    最靠近

  • 資深大佬 : jmc891205

    @61162833

  • 資深大佬 : imn1

    如果纯粹是视象尺寸范畴,合适的做法不是直接计算,而是分级
    例如高度分 320/480/720/1080/1280…,宽度类似
    然后找出组合就是几比几了

    扩展,竖着播放的写成 9:16,3:4 么?

  • 主 資深大佬 : 61162833

    @tcfenix 谢谢,实际我根本不在乎长宽比,我想知道怎么根据 1920×1080 得出 16:9

  • 主 資深大佬 : 61162833

    @jmc891205 这好像是一个笨方法啊,难道要做一个表格去一一遍历吗?

    比如我们都知道一个 16:9 分辨力,拿现在给一个 32×18,难道现在的数学就没办法推算出 16:9 这两个数字了吗?
    (我知道 32×18 可以用 32/2 与 18/2 得出 16:9 这个结果,这就是我想要的,可如果数字是 1920×1080 怎么算除 16:9 呢?)

  • 資深大佬 : wutiantong

    ???什么鬼问题???

  • 主 資深大佬 : 61162833

    不好意思,上面错字一堆,太难了

    修改错字版本:
    比如我们都知道一个 16:9 比例,那现在给一个 32×18,难道现在的数学就没办法推算出 16:9 这两个数字了吗?
    (我知道 32×18 可以用 32/2 与 18/2 得出 16:9 这个结果,这就是我想要的,可如果数字是 1920×1080 怎么算出 16:9 呢?)

    上面的回复都是说做一个表格,16/9 约等于几,然后 1920/1080 约等于几,这样去遍历对比,可我想知道的是 16 与 9 这两个数字,也就是根据 1920 与 1080 这两个值,算出 16 与 9 这两个值,而不是根据表格表格遍历

  • 資深大佬 : washbrain

    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

  • 資深大佬 : washbrain

    本质上你要做的就是约分,把分数变为最简分数,分子分母同时除以最大公约数….

  • 資深大佬 : washbrain

    另外, 982:737 并不等于 4:3,这个是近似到常见比例

  • 主 資深大佬 : 61162833

    @washbrain “分子分母同时除以最大公约数”

    大佬,你太牛鼻了!!!解决了我多年的困惑!!!谢谢啊!!!请抽华子!!!请喝阔乐!!!

  • 資深大佬 : tcfenix

    @61162833
    前面数学公式我也给你推导了, 只是给一个长宽比从数学上是算不出来是哪两个数字相除才能得到它的……只能靠自己维护一个表…..

  • 資深大佬 : auroraccc

    可以用辗转相除法先算出最大公约数,然后再同时除以这个公约数就好了
    ex (JS):
    var 宽 = 1920
    var 高 = 1080
    var 辗转相除法 = (m , n) => m % n === 0 ? (n) : 辗转相除法(n, m % n);
    var 最大公约数 = 辗转相除法(宽, 高)
    var 长宽比 = `${宽 / 最大公约数}:${高 / 最大公约数}`
    console.log(长宽比) // 16:9

  • 主 資深大佬 : 61162833

    @tcfenix @washbrain 谢谢!

    也就是没有最大公约数的比如 982:737,要得出 4:3 就只能靠表来推算了是吗?

  • 資深大佬 : necpom

    @61162833 “根据 1920 与 1080 这两个值,算出 16 与 9 这两个值” 公约数公倍数不是小学学的吗?

  • 主 資深大佬 : 61162833

    @auroraccc 谢谢,太 6 了,这中文代码可以直接贴在 Chrome Console 里运行。惊呆

  • 主 資深大佬 : 61162833

    @necpom 小学生,向各位大佬请教

  • 資深大佬 : Tumblr

    @61162833 #17 看得累 shi 了。。。这不就是个「约分」么。。。
    不过有些不是严格意义上的 4:3 或 16:9,遇到这种就除掉之后找最近的比例了。

  • 主 資深大佬 : 61162833

    我表达能力水平低,不好意思各位!!!

  • 資深大佬 : Mountain

    还是好人多,主加油

  • 資深大佬 : crab

    最大公约数

  • 資深大佬 : jmc891205

    哈哈哈

  • 資深大佬 : flineqaq

    两个数分别质因数分解,去掉相同的质因数,剩下的相乘。这问题需要思考吗。。?

  • 資深大佬 : otakustay

    首先指定一个“到整数的允许误差”,比如 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

    用同样的方法,1920×1080,先算出 1920/1080=1.777777778,再把 1.777777778 往上乘,最后在乘以 9 的时候能得到 16.000000002,在误差范围内,所以是 16:9

    你可以设定一个乘数的最大值,比如一直乘到 120 都找不到一个整数,直接认为这比例没法算

  • 資深大佬 : otakustay

    对应到 JS 代码的版本:
    https://gist.github.com/otakustay/37d28c2003a6b8e9a4179a8d662463df

  • 資深大佬 : kaiki

    除了 16:10 都是公约数,因为它不写作 8:5 是为了和 16:9 作对比更方便人们理解。
    其他的比例只能按照预设的比例找最近的了

  • 資深大佬 : lululau

    982 除以 737 = 4:3 ?

    如果你是 80 后,你父母可能违法了,义务教育法。。。

  • 資深大佬 : wolfie

    1L 不就是正确答案吗?

  • 資深大佬 : gwy15

    对于 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,选个你顺眼的。

  • 主 資深大佬 : 61162833

    @otakustay 谢谢!说的非常清楚,理解了

  • 主 資深大佬 : 61162833

    @gwy15 谢谢,高级,我不知道连分数是什么,惭愧

  • 資深大佬 : weyou

    一个小学 5 年级学的“约分”就能解决的问题讨论了这么多,v2 这是怎么了

  • 資深大佬 : luhe

    还是吃得太饱了……

  • 資深大佬 : dontmind

    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

    这不是取决于你的内容是要 content_fit 还是要 content_fill 来显示吗?

  • 資深大佬 : Mutoo

    由于很多屏幕的像素是取整的,所以不可能完全符合整数上的 4:3
    最好的办法还是查表法,算出 ratio 然后最近似的结果,js 代码如下:

    https://gist.github.com/mutoo/0c4c388749fedd22f16375c07f8cae40

  • 資深大佬 : lance6716

    敢问主学历…

  • 資深大佬 : FucUrFrd

    主是小学毕业吗

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

    接近 1.777 就是 16/9

    其他比例自己插队

  • 資深大佬 : nekochyan

    我不太明白你这算这个来是干嘛的,如果是做适配,也用不到这个,如果只是单纯的算是 4:3 还是 16:9,那你只能屏幕的分辨率相除去比较,毕竟很多屏幕并不一定是 4:3 或 16:9 的

  • 資深大佬 : Alexhex

    我觉得主还是挺有数学天赋的。上不少人可能低估了这个问题的难度,参看:

    https://zh.wikipedia.org/zh-cn/%E6%95%B4%E6%95%B0%E5%88%86%E8%A7%A3

  • 資深大佬 : Alexhex

    感觉他想要的是一个一般性的将两个整数化为最小互质数比的算法。

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

    当然如果只是追究屏幕分辨率,鉴于分辨率应该不会超过 10W 这个数量级,算法效率应该不太重要。维护一个质数数列除到 根号 N 然后写数组去相同元素应该够了。

  • 資深大佬 : hitmanx

    @Alexhex 你看一下 4 ,不是最大公约数的问题。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具