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

接着上回说的 28 岁三种选择,我们来实现一个人生路线模拟器吧

  •  
  •   djangovcps · 2023-11-27 17:52:05 +08:00 · 1997 次点击
    这是一个创建于 397 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 完整条件

      初始条件

      • 一线城市房价:550 万
      • 二线城市房价:150 万

      路径 A (继续在一线城市工作):

      • 初始薪资:25,000 元/月
      • 无房,存款老家房子,折现 40 万

      路径 B (到二线城市工作):

      • 初始薪资:14,000 元/月
      • 存款老家房子,折现 40 万

      路径 C (回老家):

      • 初始薪资:5,000 元/月
      • 有房贷 60 万

      事件概率和影响

      • 路径 A
        • 好事:薪资每年上涨 10%,概率为 30%
        • 坏事:被裁员,失去固定薪资 3 个月,概率为 10%
        • 期望事件进度:5 年后买车,买房(首付 35%),结婚
      • 路径 B
        • 好事:薪资为一线城市的 90%,概率为 60%;薪资增长概率为 30%
        • 坏事:水土不服,长期待业或只有原薪资 50%,概率为 10%
        • 期望事件进度:买房,5 年后买车,结婚
      • 路径 C
        • 好事:薪资为一线城市的 50%,概率为 30%;正常为 20%-30%
        • 坏事:老家房子贬值 30%-40%,概率为 40%
        • 期望事件进度:还清房贷,结婚

      模拟的关键变量

      • 每月薪资的 65%可用于支出房子和车子
      • 存款的累积和更新
      • 每月薪资的变化
      • 特定事件(如买车、买房、结婚)对总进度的影响
      • 随机事件的发生概率
    import random
    
    # 定义基本参数
    initial_salary_a = 25000  # 路径 A 初始薪资
    initial_salary_b = 14000  # 路径 B 初始薪资
    initial_salary_c = 5000   # 路径 C 初始薪资
    savings_a = 400000        # 路径 A 初始存款
    savings_b = 400000        # 路径 B 初始存款
    savings_c = 0             # 路径 C 初始存款
    mortgage_c = 600000       # 路径 C 房贷
    first_tier_price = 5500000  # 一线城市房价
    second_tier_price = 1500000 # 二线城市房价
    salary_increase_prob_a = 0.3  # 一线城市薪资增长概率
    salary_increase_prob_b = 0.3  # 二线城市薪资增长概率
    layoff_prob = 0.1            # 被裁员概率
    house_depreciation_prob_c = 0.4 # 老家房子贬值概率
    salary_usable_ratio = 0.65    # 薪资中可用于支出的比例
    duration = 15 * 12           # 模拟时间(月)
    
    # 模拟函数
    def simulate_path_with_negatives(path):
    import random
    
    # 基本参数
    initial_salary_a = 25000
    initial_salary_b = 14000
    initial_salary_c = 5000
    savings_a = 400000
    savings_b = 400000
    savings_c = 0
    mortgage_c = 600000
    first_tier_price = 5500000
    second_tier_price = 1500000
    duration = 15 * 12
    salary_usable_ratio = 0.65
    
    # 事件概率
    salary_increase_prob_a = 0.3
    salary_increase_prob_b = 0.3
    layoff_prob = 0.1
    house_depreciation_prob_c = 0.4
    
    # 模拟函数
    def simulate_path(path):
        salary = initial_salary_a if path == 'A' else initial_salary_b if path == 'B' else initial_salary_c
        savings = savings_a if path == 'A' else savings_b if path == 'B' else savings_c
        mortgage_remaining = mortgage_c if path == 'C' else 0
        progress = 0
        married = False
        house_bought = False
        car_bought = False
    
        for month in range(duration):
            if path == 'A' and random.random() < salary_increase_prob_a:
                salary *= 1.1
            elif path == 'B' and random.random() < salary_increase_prob_b:
                salary *= 1.1
            if path == 'A' and random.random() < layoff_prob:
                salary = 0
            elif path == 'B' and random.random() < layoff_prob:
                salary *= 0.5
    
            usable_salary = salary * salary_usable_ratio
            savings += usable_salary
    
            if not car_bought and month >= 60:
                car_bought = True
                progress += 10
            if not house_bought and (savings >= first_tier_price * 0.35 if path == 'A' else savings >= second_tier_price * 0.35):
                house_bought = True
                savings -= first_tier_price * 0.35 if path == 'A' else second_tier_price * 0.35
                progress += 30
    
            if not married and (house_bought or path == 'C'):
                married = True
                progress += 20
    
            if path == 'C' and random.random() < house_depreciation_prob_c:
                mortgage_remaining *= (1 - 0.35)
    
            if path == 'C' and mortgage_remaining > 0:
                repayment = min(mortgage_remaining, usable_salary)
                mortgage_remaining -= repayment
                savings -= repayment
                if mortgage_remaining == 0:
                    progress += 20
    
            if salary == 0 and month % 3 == 0:
                salary = initial_salary_a if path == 'A' else initial_salary_b if path == 'B' else initial_salary_c
    
        return progress
    
    progress_a = simulate_path('A')
    progress_b = simulate_path('B')
    progress_c = simulate_path('C')
    # a=60% b=60% c=50%
    
    
    11 条回复    2023-11-29 14:39:39 +08:00
    Eagleyes
        1
    Eagleyes  
       2023-11-27 20:13:29 +08:00   ❤️ 2
    我选 D

    一线赚钱到 30 岁-33 岁。积累存款 100-200 万。

    之后你想干嘛干嘛,选 abc 都可以。

    记住,在没搞到 100 万之前不要想着享受,要有农民工的心态,农民工知道吧,人家工资基本净落,除了吃饭基本不花钱,做不到就努力压缩成本尽量像他们靠拢就可以了。

    你说 25000 ,我默认税前吧,不涨薪的情况下,税后 2 万也差不多,一年 24 万,
    咱努努力一年存个 15-20 万,5-7 年即可存到 100 万。
    shm7
        2
    shm7  
       2023-11-28 14:40:56 +08:00
    先看看前几天 500 万武汉买房的。150 万二线可能有点乐观。
    inpm
        3
    inpm  
       2023-11-29 09:59:58 +08:00
    @Eagleyes 不错的想法,开源节流都不容易,点外卖、打车、3C ,有个爱好,一年能存 10w 都是乐观的。
    catch
        4
    catch  
       2023-11-29 10:04:13 +08:00
    你二线买的房子,出租的钱,够你一线租房了,一线干到失业 走人。
    Eagleyes
        5
    Eagleyes  
       2023-11-29 10:07:49 +08:00   ❤️ 1
    @inpm #3

    点外卖,不会自己做饭啊? 10 块钱素材吃到撑,一个素炒土豆丝,麻婆豆腐卖 15-18 ,自己买菜做才知道成本有多低,
    除非 996 我也不说啥了;

    打车,就那么懒?来一线享受生活的啊?除非 996 给报销也不说啥了,不然老老实实坐公交地铁去,一个月 200 顶天了,忽略不计;

    3C ,无非就是买个手机,相机,游戏机?还年年换新啊?不照照镜子自己有那实力么? 2-3 年换新一次也没多少钱,相机更是耐用品,游戏机游戏虽然贵,一年也玩不了几个,完了之后把光盘卖了继续买新款,没多少钱;
    djangovcps
        6
    djangovcps  
    OP
       2023-11-29 10:15:45 +08:00
    @Eagleyes 刚毕业前三年花钱都大手大脚的,中后期才知道存钱,已经有点晚了
    Eagleyes
        7
    Eagleyes  
       2023-11-29 10:20:58 +08:00
    @djangovcps #6 3 年时间并不晚,以自身经历来看,前三年即使很会过也存不下多少钱,
    大概是工作 5-7 年后才能显著增长。

    因为前三年初出茅庐,看啥都新鲜,管不住手也是人之常情;
    另外就是开始的时候啥都没有,需要置办。基本生活,生存物品买了之后才能开始逐渐消停。
    seeu2ex
        8
    seeu2ex  
       2023-11-29 13:36:32 +08:00
    你这选项明显是没有外力干涉的情况下,现实还会有外力介入,混沌性太强了,基本不可能如你所愿
    djangovcps
        9
    djangovcps  
    OP
       2023-11-29 14:09:44 +08:00
    @Eagleyes 薪资到瓶颈了,现在还要考虑裁员问题,头疼得很
    djangovcps
        10
    djangovcps  
    OP
       2023-11-29 14:10:22 +08:00
    @seeu2ex 可以继续添加随机奖励和惩罚,这是个简单的 demo
    Eagleyes
        11
    Eagleyes  
       2023-11-29 14:39:39 +08:00
    @djangovcps #9 听楼主的意思,之前可能太顺了,有点像出道即巅峰。
    不太理解赚钱之艰难,花钱也大手大脚。

    好在才 3 年,不算晚。我一个同事 35 岁才醒过来,那真是悔之晚矣。
    现年近五旬,背井离乡,抛妻弃子的出来打工养家(当年太潇洒了没存下钱来在打工地置业)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2551 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 10:44 · PVG 18:44 · LAX 02:44 · JFK 05:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.