V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MrMike
V2EX  ›  PHP

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

  •  
  •   MrMike · 2017-07-03 15:01:43 +08:00 · 2427 次点击
    这是一个创建于 2735 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    数学不好,请教了。

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

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

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

    (正经
    ZakaryTime
        12
    ZakaryTime  
       2017-07-03 19:59:58 +08:00 via Android
    条件太少无限可能,没什么意义
    stzz
        13
    stzz  
       2017-07-03 20:07:18 +08:00 via Android
    这跟 php 什么关系
    pqpo
        14
    pqpo  
       2017-07-03 20:25:30 +08:00
    条件太少了。大致猜测一下你的需求,我会这么做:
    比如宽度 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, 均为已知。然后你就要根据业务调整各列的权重。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2784 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 07:43 · PVG 15:43 · LAX 23:43 · JFK 02:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.