大连女子来到医院,从包里拿出29个信封!里面除了钱还有…

2019-08-26

当每一位医护人员把信封里的钱都交到护士长手里,大家再次被震撼了 ,所有收到信的医生都表示,这钱不能收……

原文见大连女子来到医院,从包里拿出29个信封!里面除了钱还有…. 主要是周五看到这个故事就算了一下, 今天想用这个文件做些其他事情, 所以就把这个程序整理出来.

看到的一个故事, 当然用故事来描述可能不太准确, 因为这是发生在我们身边的真实事迹.

先说一下我当时看完以后对这个新闻的看法. 确实是比较感人. 患者和患者家属能认识到医生护士的好乃至能够感谢其他工作人员, 这本身就很难得, 毕竟我们这个社会里有很多交钱就是大爷的人, 我给你了钱, 你就该为我当牛做马怎么怎么, 总之是居高临下盛气凌人; 医护人员尽职尽责, 他们也确实是做到了, 尽力做好自己本职专业工作, 说起来简单但做起来可能就不那么容易, 毕竟医疗行业这种也算是特殊的服务行业, 不光是需要治病救人这种的, 很多时候还需要安抚患者和患者亲属情绪给他们慰藉走近他们, 甚至还得承担某些渣滓孽畜来闹事儿的医闹风险,真几把烦。对,没错,喷的就是那帮医闹的玩意儿。

再说一个想到的别的事儿. 前一阵儿好像是大上周的星期五回家道上碰到个老爷子摔倒还不怎么总之仰面躺在地上了, 不过脑袋后面垫着一件衣服, 这位老爷子看起来有些脏兮兮的, 像是无家可归那种, 然后和周围群众旁友们商量了一下, 我就打了 110 联系井查蜀黍过来.

当然了, 我确实是有所保留, 怕被老爷子赖上, 所以全程一直都比较注重站在外部监控范围下, 并不与老人发生肢体接触, 当然也是出于怕脏以及感觉老爷子性格有些古怪不想与之肢体接触😂 然而给我印象比较深的是一位光头上身赤裸还有纹身的大哥, 他全程一直很热心地安抚老人, 老人多次想起身时(实际上身体状况不允许, 容易摔倒), 都被他用行为制止, 并手动调整老人的姿势让其能相对比较舒服地躺着.

井查蜀黍过来以后, 处理了一下把老爷子带走了. 临走的时候那位光头纹身大哥把垫在老爷子头底下的衣服要走了, 这时候我才知道衣服是他的. 笔者我本人的父亲也做过类似的事儿, 他那个是被救助者被车撞了都流血了, 总之也是和那位大哥一样完全不考虑被讹诈的后果的这种. 像这位大哥、我的父亲、还有患者一家都是那种能获得我的认可的人, 而我自己自然是知道谁谁哪个人什么什么事儿如果能被我认可的话得有多优秀😂虽说我非常注重个人能力毕业院校是不是 985211 或者如果双非那你学历是不是够高这种东西, 但是我更看重能被我正眼瞧得起的嘉言懿行. 生活中如果有这样的人我愿意与他们做朋友, 就是不知道我配不配当他们的朋友😂

好人的表现可能有很多种, 但这些表现的共性一般就是深明大义, 愿意去做对的事儿.

回到文章, 看一下中间的内容:

丁女士找到了护士长丁洁,她说,我丈夫已经烧了“五七”,今天我是来替他还愿的。说着,她从包里拿出了一个又一个信封,每个信封上都写着名字,从科主任、到每一位管床的医生、超声科医生、实习医生、护士长、护士、保洁员、送检员,一共29个信封。她哭着告诉护士长,这是丈夫临终前的遗愿,七年来,每一位管过他的医生,每一位细心护理过他的护士,还有科里的保洁员、送检员,他都心存感恩,他知道,如果不是医护人员的齐心协力,一次次把他从消化道大出血、肝性脑病等抢救过来,他得了这个绝症,哪能活了七年。

每个信封里除了装有2000元、1000元、500元、200元不等的现金外,八位曾经管过她丈夫的医生和科主任都收到丁女士手写的信,信的落款从8月20日至8月21日,每封信的内容各有不同。她在给科里全体医护人员的感谢信中说,七年的时间,你们与我相伴走来,我已经把你们当成了亲人。

当每一位医护人员把信封里的钱都交到护士长手里,护士长点完后告诉大家一共是16400元时,大家再次被震撼了。

所有收到信的医生都表示,这钱不能收,这封信要好好珍藏,时常拿出来读读会激励自己做一名好医生。

现在我们看一下收到 2000 元、1000 元、500 元、200 元的人数.

根据报道内容, 我们可以看出来, 如果设有 w 个人收到 2000 元、有 x 个人收到 1000 元、有 y 个人收到 500 元、有 z 个人收到 200 元的话, 那么 wxyz 应当满足:

2000w + 1000x + 500y + 200z = 16400      (1)
w + x + y + z = 29      (2)
w, x, y, z ∈ N*      (3)

可以看出, 这是一个不定方程组, 可能会有多个解, 如果去掉 (3) 式来求通解应该是线代中的基本功了, 不过这里我们要求满足上述全部三个式子的特殊解.

先把系数化一下, 由第 (1) 个式子可以看到:

20w + 10x + 5y + 2z = 164      (4)

高斯消元法把 (2) 式配合 (4) 式约一下:

18w + 8x + 3y = 106      (5)

再结合 (3) 式收到各种钱数的人数都是正整数的条件, 我们可以知道 y 是偶数, 进而可以得出:

w ∈ {1, 2, 3, 4, 5},
x ∈ {1, 2, 3, 4, 5, 6, …, 12},
y ∈ {2, 4, 6, 8, 10, 12, …, 26},
z ∈ {1, 2, 3, 4, 5, 6, …, 26}.

有了以上的一个大概判断以后, 代码如下:

<?php

foreach (range(1, 5) as $w) {
    foreach (range(1, 12) as $x) {
        foreach (range(2, 26, 2) as $y) {
            foreach (range(1, 26) as $z) {
                if ((20 * $w + 10 * $x + 5 * $y + 2 * $z === 164) && ($w + $x + $y + $z === 29)) {
                    echo "w: {$w}, x: {$x}, y: {$y}, z: {$z}<br/>";
                }
            }
        }
    }
}

最后输出结果是:

w: 1, x: 2, y: 24, z: 2
w: 1, x: 5, y: 16, z: 7
w: 1, x: 8, y: 8, z: 12
w: 2, x: 2, y: 18, z: 7
w: 2, x: 5, y: 10, z: 12
w: 2, x: 8, y: 2, z: 17
w: 3, x: 2, y: 12, z: 12
w: 3, x: 5, y: 4, z: 17
w: 4, x: 2, y: 6, z: 17

如果这类问题总是按这个做法一个个试的话, 时间复杂度应该是 O(等号右边的规模值未知数个数). 一般来说超过 O(n2) 之后, 也就是比平方时间还差那种基本上就已经不是一个好实现了, 不过这个例子数据体量比较小, 就直接上吧😂