寻找神秘4位数:在0-9十个数字中任意选择4个数字,如选2,9,8,4这四个数字,组成最大的数是9842,最小的数是2489,然后相减,再把得到的4位数组成的最大与最小值相减

news/2025/1/2 2:28:20/

寻找神秘4位数:在0-9十个数字中任意选择4个数字,如选2,9,8,4这四个数字,组成最大的数是9842,最小的数是2489,然后相减,再把得到的4位数组成的最大与最小值相减,在这样重复的过程中,你能找到一个神秘的四位数吗?
在这里插入图片描述

# coding=UTF-8
import random'''
总体思路:
全集:[0,1,2,3,4,5,6,7,8,9] 
提取子集:[2,4,9,8](依次为例)第1轮:
排序:[2,4,8,9]
最值:9842、2489
最值拆分:[9,8,4,2]
差值:9842-2489=7353
差值拆分:[7,3,5,3]
判断“最值拆分”与“差值拆分”是否相同:False,进入下一轮
最值拆分=差值拆分(赋值,开启下一轮)第2轮:
排序:[7,3,5,3]
最值:7533、3357
最值拆分:[7,5,3,3]
差值:7533-3357=4176
差值拆分:[4,1,7,6]
判断“最值拆分”与“差值拆分”是否相同:False,进入下一轮
最值拆分=差值拆分(赋值,开启下一轮)第3轮:
排序:[4,1,7,6]
最值:7641、1467
最值拆分:[7,6,4,1]
差值:7641-1467=6174
差值拆分:[4,1,7,6]
判断“最值拆分”与“差值拆分”是否相同:True,结束
''''''
定义一个函数,用来拆分4位数的个十百千位,并加入列表
如chaiFen(1234),返回[1,2,3,4]
'''
def chaiFen(num):geWei=num//1%10shiWei=num//10%10baiWei=num//100%10qianWei=num//1000chaiFen_list=[geWei,shiWei,baiWei,qianWei]return chaiFen_list#全集:建立一个包含0-9数字的列表全集,然后从里面取数字
num_list=[0,1,2,3,4,5,6,7,8,9] 
#子集:从全集中任取4个数字,组成一个子集,例如[2,9,8,4]
subNum_list=random.sample(num_list,4) 
#排序:对列表中的值进行排序,默认是升序,该方法没有返回值,但是会对列表的对象进行排序,[2,4,8,9]。
subNum_list.sort()i=1
while True:#将差值拆分成列表,排序。#最值:定义最大的数和最小的数,然后做减法,maxNum=9842,minNum=2489,maxNum=subNum_list[3]*1000+subNum_list[2]*100+subNum_list[1]*10+subNum_list[0]*1minNum=subNum_list[0]*1000+subNum_list[1]*100+subNum_list[2]*10+subNum_list[3]*1#差值subtraction=maxNum-minNum #subtraction=7353#差值拆分breakSubNum_list=chaiFen(subtraction) #[7,3,5,3]breakSubNum_list.sort() #[3,3,5,7]#最值拆分maxNum_list=chaiFen(maxNum)maxNum_list.sort() #[2,4,8,9]#判断:当差值拆分与最值拆分相等时,可以认为收敛,结束。if maxNum_list==breakSubNum_list:breakelse:print("第{}次:{}-{}={}".format(i,maxNum,minNum,subtraction))subNum_list=breakSubNum_listi+=1print("共运行{}次,该组数字是{}".format(i,breakSubNum_list))

运行结果:
在这里插入图片描述


http://www.ppmy.cn/news/294386.html

相关文章

PVE设置显卡直通

0x01 准备事项 1、确认CPU是否支持VT-D Inter官网查询: https://www.intel.cnAMD官方网站: https://www.amd.com/zh-hans 例: i7-7700 查询结果 2、确保启动方式为gurb,非systemd-boot 如果启动方式为systemd-boot,在…

16进制颜色透明度对照表

#000000:16进制颜色,纯黑色不透明 #80000000:表示黑色50%透明度,前两位是透明度,不写默认FF 透明度16进制100%FF99%FC98%FA97%F796%F595%F294%F093%ED92%EB91%E890%E689%E388%E087%DE86%DB85%D984%D683%D482%D181%CF8…

kubernetes 1.24.2实战与源码(4)

kubernetes 1.24.2实战与源码 第22章 容器底层技术之镜像原理 22.1 以nginx镜像为例看OCI中的镜像规范 22.2 联合文件系统简介 第23章 k8s job和cronjob源码解读 23.1 job的基本功能 23.2 job controller源码解析之初始化工作 23.3 job controller源码解析之syncJob工作…

【i阿极送书——第四期】《ChatGPT时代:ChatGPT全能应用一本通》

系列文章目录 作者:i阿极 作者简介:数据分析领域优质创作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒…

Golang context 实现原理与源码解读

0 context入门介绍 context是Golang应用开发常用的并发控制技术,主要在异步场景中用于实现并发协调以及对 goroutine 的生命周期控制,它与WaitGroup最大的不同点是context对于派生goroutine有更强的控制力,它可以控制多级的goroutine。 con…

【Android】WMS(六)Surface的创建和操作

Surface的创建流程 在Android系统中每个Activity都有一个独立的画布(在应用侧称为Surface,在SurfaceFlinger侧称为Layer), 无论这个Activity安排了多么复杂的view结构,它们最终都是被画在了所属Activity的这块画布上。 1.Surfac…

【每日一题Day228】LC2352相等行列对 | 哈希

相等行列对【LC2352】 给你一个下标从 0 开始、大小为 n x n 的整数矩阵 grid ,返回满足 Ri 行和 Cj 列相等的行列对 (Ri, Cj) 的数目*。* 如果行和列以相同的顺序包含相同的元素(即相等的数组),则认为二者是相等的。 映射哈希表 …

Matlab论文插图绘制模板第101期—人口金字塔图

在之前的文章中,分享了Matlab双向柱状图的绘制模板: 进一步,再来分享一种特殊的双向柱状图:人口金字塔图。 先来看一下成品效果: 特别提示:本期内容『数据代码』已上传资源群中,加群的朋友请自…