停止抱怨,低头赶路

论坛上经常有人在抱怨,各式各样的抱怨都有。有抱怨房价过高、物价上涨的,有抱怨整天加班的,有抱怨工资太低的,有抱怨不被重视的。我想说的是,你的抱怨能改变你的处境吗?如果不能,请闭上嘴,去做一些能改变你处境的事情。

当你月薪是3k的时候,也许你会在意物价又涨了。但是,当你月薪3W的时候,你还会在意一斤鸡蛋又涨了几毛钱吗?努力工作,努力提高自己,想办法让自己跨入月薪3W的阶级难道不比你在这边抱怨要强很多吗?抱怨工资低、不被重视,可你是否可以换一下立场。站在老板的角度上,以你的能力,有资格拿高薪、被重视吗?如果没有,请停下抱怨,努力提高自己吧。如果有的话,也许你该直接告诉老板或者炒老板鱿鱼,反正你的抱怨他是不会看到的,没用的。

停止抱怨,做点有意义的事情吧!

这句话也是用来时刻提醒我自己的。

### 问题分析与求解 设最初有 $x$ 块巧克力,依次分析每个人索要巧克力后剩余巧克力的数量。 #### 第 1 个人索要巧克力 第 1 个人索要所有巧克力的一半和半块巧克力,即索要 $\frac{x}{2}+\frac{1}{2}=\frac{x + 1}{2}$ 块巧克力,那么剩余巧克力数量为 $x-(\frac{x + 1}{2})=\frac{x-1}{2}$ 块。 #### 第 2 个人索要巧克力 此时巧克力数量为 $\frac{x - 1}{2}$ 块,第 2 个人索要 $\frac{1}{2}\times\frac{x - 1}{2}+\frac{1}{2}=\frac{x - 1+2}{4}=\frac{x + 1}{4}$ 块巧克力,剩余巧克力数量为 $\frac{x - 1}{2}-\frac{x + 1}{4}=\frac{2(x - 1)-(x + 1)}{4}=\frac{2x-2 - x - 1}{4}=\frac{x-3}{4}$ 块。 #### 第 $n$ 个人索要巧克力 通过归纳法可以得到,第 $n$ 个人索要后剩余巧克力数量的递推公式。设第 $n$ 个人索要前巧克力数量为 $a_{n-1}$,则第 $n$ 个人索要 $\frac{a_{n - 1}}{2}+\frac{1}{2}=\frac{a_{n - 1}+1}{2}$ 块巧克力,剩余巧克力数量 $a_{n}=a_{n - 1}-(\frac{a_{n - 1}+1}{2})=\frac{a_{n - 1}-1}{2}$。 经过 $N$ 个人索要后,设剩余巧克力数量为 $a_N$。从递推公式 $a_{n}=\frac{a_{n - 1}-1}{2}$ 变形可得 $2a_{n}=a_{n - 1}-1$,即 $a_{n - 1}=2a_{n}+1$。 假设经过 $N$ 个人索要后剩余巧克力数量为 $y$,然后将剩余巧克力的一半给女朋友,最后剩下的巧克力数量为 $\frac{y}{2}$。 为了方便计算最初的巧克力数量 $x$,我们从最后剩余的情况倒推。设最后给女朋友后剩下 $z$ 块巧克力,则给女朋友之前有 $2z$ 块巧克力。 从后往前推,经过 $N$ 个人索要后剩余 $2z$ 块巧克力。根据递推公式 $a_{n - 1}=2a_{n}+1$,经过 $N$ 个人索要前(即最初)的巧克力数量 $x$ 满足: $x = 2^{N + 1}z+2^{N}-1$ #### 具体示例 如果最后剩下 $z = 0$ 块巧克力(即给女朋友后没有剩余),那么最初的巧克力数量 $x=2^{N}-1$ 块。 - 第 1 个人索要 $\frac{2^{N}-1 + 1}{2}=2^{N - 1}$ 块,剩余 $2^{N}-1-2^{N - 1}=2^{N - 1}-1$ 块。 - 第 2 个人索要 $\frac{2^{N - 1}-1+1}{2}=2^{N - 2}$ 块,剩余 $2^{N - 1}-1 - 2^{N - 2}=2^{N - 2}-1$ 块。 - $\cdots$ - 第 $N$ 个人索要 $\frac{2^{1}-1 + 1}{2}=1$ 块,剩余 $2^{1}-1-1 = 0$ 块。然后将 0 块的一半给女朋友,最后还是 0 块。 ### 代码实现(Python) ```python def chocolate_distribution(N, z): # 计算最初的巧克力数量 x = 2**(N + 1)*z+2**N-1 chocolates = x distribution = [] for i in range(N): take = (chocolates + 1) // 2 distribution.append(take) chocolates -= take give_to_girlfriend = chocolates // 2 remaining = chocolates - give_to_girlfriend return x, distribution, give_to_girlfriend, remaining # 示例:N = 3,最后剩下 0 块巧克力 N = 3 z = 0 x, distribution, give_to_girlfriend, remaining = chocolate_distribution(N, z) print(f"最初有 {x} 块巧克力") for i, take in enumerate(distribution): print(f"第 {i + 1} 个人索要 {take} 块巧克力") print(f"给女朋友 {give_to_girlfriend} 块巧克力") print(f"最后剩下 {remaining} 块巧克力") ``` ### 总结 - 最初的巧克力数量 $x = 2^{N + 1}z+2^{N}-1$,其中 $z$ 是给女朋友后剩余的巧克力数量。 - 第 $n$ 个人索要的巧克力数量可以通过递推公式计算,也可以通过代码模拟得到。 - 最后给女朋友的巧克力数量是经过 $N$ 个人索要后剩余巧克力数量的一半,最后剩余的巧克力数量是给女朋友后剩下的。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值