一个简单的数学问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
evilboy
V2EX    问与答

一个简单的数学问题

  •  
  •   evilboy 2021-09-24 11:02:04 +08:00 2284 次点击
    这是一个创建于 1479 天前的主题,其中的信息可能已经有所发展或是发生改变。
    假如被"除数"10,除以"除数"3,采用进一法,等于 3.34 或者等于 3.334 。现在要让"商"( 3.34 或 3.334 )乘以"除数"3 的”积“等于”被除数“10,应该如何处理,是不是可以直接舍掉小数点后面的小数部分。对于文中的”10÷3=3.34 或 3.334“只是一个例子。我真正想问的是如何让”除不尽的数“被除后,使用”商“再乘以”除数“,使得结果”积“等于”这个除不尽的数“。
    20 条回复    2021-09-25 12:41:19 +08:00
    zxCoder
        1
    zxCoder  
       2021-09-24 11:07:52 +08:00
    没听懂。。。。你是想解决这个“数学问题”?还是说是写代码怎么处理?那保存结果的分子分母?这样肯定是准确的
    Vinty
        2
    Vinty  
       2021-09-24 11:12:32 +08:00
    用符号运算
    deplivesb
        3
    deplivesb  
       2021-09-24 11:13:44 +08:00
    你确定这个是数学问题么?
    cmdOptionKana
        4
    cmdOptionKana  
       2021-09-24 11:16:22 +08:00
    根据具体目的灵活处理,会计专业肯定有处理
    这些问题的约定俗成的方法。
    cmdOptionKana
        5
    cmdOptionKana  
       2021-09-24 11:20:49 +08:00
    比如,要看你把这两部操作当作“总是前后发生的一个固定流程”,还是看成“两个独立事件,其中第二个事件可能发生,可能不发生,可能相隔久远才发生”。

    如果看作两个独立事件,那么当第一步舍弃精度时,就已经决定了后续不可能完美还原。如果确实有必要,可以考虑使用分数,但这会导致系统很复杂。
    GuuJiang
        6
    GuuJiang  
       2021-09-24 11:26:23 +08:00 via iPhone
    又见 XY 问题,请直接说出你的原始需求,盲猜需要的是个符号运算系统
    jifengg
        8
    jifengg  
       2021-09-24 12:06:03 +08:00
    数学问题:“等于 3.34”这里应该是“约等于 3.34”,丢失了精度了。用一个“约等于”的数,没法得到一个“等于”的数。你怎么知道 3.34 是由 3.335 还是 3.333 还是 3.332 约来的呢。
    数学解法:10 除以 3 不表示为 3.34 ,表示为 3
    Jooooooooo
        9
    Jooooooooo  
       2021-09-24 13:05:49 +08:00
    Not a math problem.
    pangchaoran
        10
    pangchaoran  
       2021-09-24 13:32:17 +08:00
    已知: C=A/B
    C1=ceil(C1,1e-3)
    求 f, 使得 A=f(C1,B)
    以上是你的需求吧?

    由于 abs(C1-C)<1e-3,
    故 abs(C1*B-A)=abs(C1-C)*B<(1e-3)*B
    再加上 C1>>1e-3
    故 A=round(C1*B,(1e-3)*B)
    如果 B 有上限, 可以用(1e-3)*上限 作为 round 的精度

    以上, 不严格想法. 需要测试
    bk201
        11
    bk201  
       2021-09-24 13:39:35 +08:00
    就是 1/3 怎么表示的问题
    ipwx
        12
    ipwx  
       2021-09-24 13:42:36 +08:00
    1. 用符号、分数参与运算。
    2. 浮点数最后做舍入。反正你本来系统里面任何小数都不精确,输出的时候也要舍入。
    goool
        13
    goool  
       2021-09-24 13:46:50 +08:00
    增加一个 “内部表示” 的概念,把所有需要参与运算的数都用 “有理数” 来表达。只在需要数值的时候,才把它计算出来,不能表示为整数的,按需要精确的位数与舍入规则来确定。

    具体到你的问题:
    将 10 的内部表示记作 (10, 1),类似地,3 的内部表示,就是 (3, 1)
    10 除以 3,就是 (10, 1) / (3, 1),做有理数除法,得到 (10, 3)
    (10, 3) 乘以 3,就是 (10, 3) * ( 3, 1),做有理数乘法,得到 (10, 1)
    kop1989
        14
    kop1989  
       2021-09-24 13:48:07 +08:00
    这个问题并不是数学问题,因为除并约等于之后,就丢失了信息。
    此时 3.34 对应着不止一个被除数和除数的组合。

    你怎么知道你最终想要的被除数是多少?
    stirlingx
        15
    stirlingx  
       2021-09-24 13:52:36 +08:00
    这是一个 model 和 view 的问题,10/3 是 model,3.34 是 view,一个 model 可以有多个 view
    VictorJing94
        16
    VictorJing94  
       2021-09-24 15:38:51 +08:00
    再给留个余数后面+上?
    grimpil
        17
    grimpil  
       2021-09-24 21:33:13 +08:00
    10÷3=3.34 这一步肯定错了,只能用约等号。
    evilboy
        18
    evilboy  
    OP
       2021-09-24 23:34:18 +08:00 via iPhone
    @grimpil 有说采用进一法
    lixiang2017
        19
    lixiang2017  
       2021-09-25 09:06:17 +08:00 via Android
    GCD
    volvo007
        20
    volvo007  
       2021-09-25 12:41:19 +08:00
    感觉严格操作的话, 不太可能还原回去, 进位的时候就已经损失信息了吧

    感觉要不写个类, 一个属性放这个进一的结果, 另一个属性放符号计算结果

    展示用前一个属性, 运算的时候用后一个属性?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2434 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 15:33 PVG 23:33 LAX 08:33 JFK 11:33
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86