【时事篇-05-03】20240316 一笔145元拆分成3笔存款存入(排除有相似性的十位数字)

本文讲述了作者因大额存款被银行识别可能违法,通过Python代码实现将145元拆分为多笔小额存款,避免账户受限的经历,分享了资金拆分策略和代码示例,以应对金融监管问题。
摘要由CSDN通过智能技术生成

背景需求

前文提到,每笔都存一样的数目,容易被银行识别违法,

【时事篇-05-01】20240112 150元存46只货币基金-CSDN博客文章浏览阅读580次,点赞15次,收藏11次。【时事篇-05-01】20240112 150元存46只货币基金https://blog.csdn.net/reasonsummer/article/details/136106686

前几天我第二次收到监管通知,

因为大量存了大量的145元,

请假去银行里办了35分钟业务,填了无数反诈骗表格,多次展示微信界面后,银行同意用“分散投资”理由为我解除账户限制。

两次后,我再也不想为了这种事情去银行了。o(╥﹏╥)o

因此要想办法,在每笔总额相同的情况下,把每笔存款拆分成不同金额,分批分时存入。

代码展示:

这里我用五次的排除法,让拆分的三笔零钱看上去有差异。





'''
145元拆分3笔,以不同数字存入.py
作者:阿夏
时间:2024年3月16日
'''

import itertools
import numpy as np
import random


money=int(input('每份几元?145元\n'))
min=int(input('最小数?10(必须2位数)\n'))
max=int(input('最大数?99(必须2位数)\n'))
num=int(input('你想买几只?3只\n'))

# 145元拆分3次存,最少10元

print('-----1、145元拆分3笔整数(10——99元之间任意数字),去除重复、去除0、5数字------')
# 第1次,三笔存款数字不能相同
list1=[]
for x in range(min,max+1):  
    for y in range(min,max+1):
        for z in range(min,max+1):  
            if x+y+z==money:
                if x==y or x==z or y==z:
                    pass                
                else:
                    print(x,y,z)
                    list1.append('{}{}{}'.format(x,y,z))
print(list1)
print(len(list1))
# 5598

# 第2次,三笔存款数字的十位数不能相同
list2=[]
for a in range(len(list1)):
    if list1[a][0]==list1[a][2] or list1[a][0]==list1[a][4] or list1[a][2]==list1[a][4] :
        pass
    else:
        list2.append(list1[a]) 
print(list2)
print(len(list2))
# 4326

# # 第3次,三笔存款第2个数字不能为0、 如果6个数字中有0,就剔除
list3=[]
for b in range(len(list2)):    
    if '0' in list2[b]:
        pass
    else:
        list3.append(list2[b]) 
print(list3)
print(len(list3))
# 3102

# # 第4次,三笔存款第2个数字不能为5、 如果6个数字中有0,就剔除
list4=[]
for c in range(len(list3)):    
    if int(list3[c][1])==5 or int(list3[c][3])==5 or int(list3[c][5])==5:
        pass
    else:
        list4.append(list3[c]) 
print(list4)
print(len(list4))
# 2052

# # 第5次,三笔存款第2个数字不能相同

list5=[]
for d in range(len(list4)):    
    if list4[d][1]==list4[d][3] or list4[d][1]==list4[d][5] or list4[d][3]==list4[d][5]: 
        pass
    else:
        list5.append(list4[d]) 
print(list5)
print(len(list5))
# 1008


print('-----2、列表中随机抽取3组数字,拆分开来便于存款------')

w=random.sample(list5,num)
print(w)
for v in range(len(w)):
    print('第',v+1,'笔',money,'元的存法',w[v][0:2],'元',w[v][2:4],'元',w[v][4:6],'元')

       
         




# # for x in np.arange(40.00, 100.01, 0.01):  
# #     for y in np.arange(40.00, 100.01, 0.01):
# #         for z in np.arange(40.00, 100.01, 0.01):
# #             if x+y+z==150.00:
# #                 print(x,y,z)

终端输入:

后续思考:

1、如果存入金额是46.23这种样式,会更适合符合日常购物的情况,

问题:但是这样生成数字,运行起来就很慢。

2、不要同时把5笔存入,每一笔存款可以隔2分钟再存入,以免引起监管。

问题:但是如果不是同时分批存入,我过一会儿就会忘记。

最后是一个合并版的,代码简略一点





'''
145元拆分3笔,以不同数字存入.py
作者:阿夏
时间:2024年3月16日
'''

import itertools
import numpy as np
import random


money=int(input('每份几元?145元\n'))
min=int(input('最小数?10(必须2位数)\n'))
max=int(input('最大数?99(必须2位数)\n'))
num=int(input('你想买几只?3只\n'))

# 145元拆分3次存,最少10元

print('-----1、145元拆分3笔整数(10——99元之间任意数字),去除重复、去除0、5数字------')
# 第1次,三笔存款数字不能相同
list1=[]
for x in range(min,max+1):  
    for y in range(min,max+1):
        for z in range(min,max+1):  
            if x+y+z==money:
                if x==y or x==z or y==z:
                    pass                
                else:
                    print(x,y,z)
                    list1.append('{}{}{}'.format(x,y,z))
print(list1)
print(len(list1))
# 5598

list2=[]
for a in range(len(list1)):
    # 第2次,三笔存款数字的十位数不能相同
    if list1[a][0]==list1[a][2] or list1[a][0]==list1[a][4] or list1[a][2]==list1[a][4] :
        pass
    # 第3次,三笔存款第2个数字不能为0、 如果6个数字中有0,就剔除
    if '0' in list1[a]:
        pass
    # 第4次,三笔存款第2个数字不能为5、 如果6个数字中有0,就剔除
    if int(list1[a][1])==5 or int(list1[a][3])==5 or int(list1[a][5])==5:
        pass         
    # 第5次,三笔存款第2个数字不能相同
    if list1[a][1]==list1[a][3] or list1[a][1]==list1[a][5] or list1[a][3]==list1[a][5]: 
        pass
    # 排除以上数字
    else:
        list2.append(list1[a]) 
print(list2)
print(len(list2))
# 1008


print('-----2、列表中随机抽取3组数字,拆分开来便于存款------')

w=random.sample(list2,num)
print(w)
for v in range(len(w)):
    print('第',v+1,'笔',money,'元的存法',w[v][0:2],'元',w[v][2:4],'元',w[v][4:6],'元')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿夏reasonsummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值