V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
MrMike
V2EX  ›  PHP

数学问题请教:已知表格的整体宽度和其中最大列宽度,求其他列宽度

  •  
  •   MrMike · Jul 3, 2017 · 3015 views
    This topic created in 3220 days ago, the information mentioned may be changed or developed.

    题目:有一个表格,有 7 列,其中已知表格的整体宽度和其中最大列宽度,先求余下各列的宽度,不能等分,因为每列的宽度是动态的,我是想有没有可能得到一个系数,这样的话,就可以动态的计算出每一列的宽度了。

    数学不好,请教了。

    14 replies    2017-07-03 20:25:30 +08:00
    northisland
        1
    northisland  
       Jul 3, 2017 via Android
    问题缺少约束,有非常多个解答。是这个意思么?
    MrMike
        2
    MrMike  
    OP
       Jul 3, 2017
    @northisland 是用程序去实现,不能用手动设置。如果有公式直接实现最好。
    newtype0092
        3
    newtype0092  
       Jul 3, 2017
    100 块红包 7 个人抢,已知最大的包里是多少钱,求其余的包里各是多少钱?
    使这个意思么?这怎么求啊?
    MrMike
        4
    MrMike  
    OP
       Jul 3, 2017
    @newtype0092 你这个说法,我倒是没想到。我这个可能没有红包那么复杂吧,我这个问题,每一列都有一个值,可以得到对应的宽度,如果有这么一个系数的话,就可以对应得到这列在整个表格中占多少,这就是我想要的了。可能是我思路限制了,想不到其他的方法了。
    unavph
        5
    unavph  
       Jul 3, 2017
    条件不够啊,现在相当于只知道 6 个数的总和和每个数的最大值。连要求“和谐”这种宽泛的限定都没有。
    Kilerd
        6
    Kilerd  
       Jul 3, 2017 via iPhone
    六元一次方程(不是组)

    答案有无数个
    lonelinsky
        8
    lonelinsky  
       Jul 3, 2017
    @MrMike #4 既然你已经知道每个列的值需要的宽度的了,那么有两个方法,列表宽度减掉每一列的宽度,剩下的宽度每个列平分,或者用每个列的需要的宽度按比例把剩下的宽度分了呗。
    QAPTEAWH
        9
    QAPTEAWH  
       Jul 3, 2017   ❤️ 3
    lz 大概是故意发帖黑 PHP 开发的?
    tjxjj
        10
    tjxjj  
       Jul 3, 2017
    楼主的数学已经不是不好,而是不好到一定境界了
    题目都不成立啊,答案要么没有,要么有无数个.

    唯一可行的方案就是在字体大小一定的情况下,根据内容判断宽度了
    bombless
        11
    bombless  
       Jul 3, 2017
    解空间大概是这样的
    x1 + x2 + x3 + x4 + x5 + x6 = Y
    其中 Y 是整体宽度减最大列宽度,x(i)是变量且 x(i)大于零
    自由度很高哦

    (正经
    ZakaryTime
        12
    ZakaryTime  
       Jul 3, 2017 via Android
    条件太少无限可能,没什么意义
    stzz
        13
    stzz  
       Jul 3, 2017 via Android
    这跟 php 什么关系
    pqpo
        14
    pqpo  
       Jul 3, 2017
    条件太少了。大致猜测一下你的需求,我会这么做:
    比如宽度 16,最大列宽度为 4,剩下还有 12,剩余还要画 6 列,那么变成了另一个问题;
    宽度 12,画 6 列,最大每列宽度 4:
    先设置每列权重分别为 x1,x2,...x6,权重总和设置为 1 =( x1+x2 + ... + x6 ),加上一个最大宽度的限制条件 xi < 1/3,每列先平均分,权重给个初始值 1/6;此时 x1 = x2 = x3 =...=x6 = 1/6, 均为已知。然后你就要根据业务调整各列的权重。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1015 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 19:04 · PVG 03:04 · LAX 12:04 · JFK 15:04
    ♥ Do have faith in what you're doing.