数字趣事-组合差恒等于某个值

Linux 是洗衣粉 关于Linux 的10个趣事 今天,Linux操作系统驱动着超级计算机、子弹头列车、好莱坞电影、潜艇、国际空间站、纽约证券交易所等等。然而,Linux的诞生和旅程有许多发人深省和惊人的事实。 1、Linux作为一个目录名诞生 对于那些不知道的人,Torvalds最初将他的内核命名为“FREAX”——由“free”、“freak”和“x”(暗指Unix)组合而成。 当他的同事Ari Lemmke(他当时是FTP服务器的志愿管理员之一)将内核上传到FTP站点时,他不喜欢这个名字,他为源代码创建了子目录,并在没有询问Torvalds的情况 阅读详情

数字趣事-组合差恒等于某个值

从序列 [0-9] 10个数字中取 4 个元素进行组合、元素不允许重复
组成的最大值-最小值(最小值不能以0开头),得到的结果,重复此操作,直到结果不变

N = 3 得到的结果都是 495,有一个特例 (0,4,7) 结果是0
N = 4 得到的结果都是 6174

比如:随机选取 1 3 5 9 这四个数
取最大值和最小值 9531-1359=8172
再取最大值和最小值 8721-1278=7443
重复这个过程 ==>> 7443-3447=3996 9963-3699=6264 6642-2466=4176 7641-1467=6174 后边永远是 6174

import itertools as it
import time


def convert_2_int(arr_int):
    str_arrays = list(map(str, arr_int))
    combined_str = "".join(str_arrays)
    return int(combined_str)

def convert_2_array(val_int):
    num_str = str(val_int)
    return [int(v) for v in num_str]

def not_0_begin(int_arrays):
    not_0_index = 0
    for i in range(len(int_arrays)):
        if int_arrays[i] != 0:
            not_0_index = i
            break
    if not_0_index != 0:
        int_arrays[0], int_arrays[i] = int_arrays[i], int_arrays[0]            


def delta(values):
    values.sort()
    not_0_begin(values)
    min_val = convert_2_int(values)

    values.sort(reverse=True)
    max_val = convert_2_int(values)
    # print(max_val, min_val, max_val - min_val)
    return max_val - min_val


# 从序列 [0-9] 10个数字中取 N 个元素进行组合、元素不允许重复
# 组成的最大值-最小值(不能以0开头),得到的结果,重复此操作,直到结果不变
# N = 1,2 得到的结果都是 0
# N = 3 得到的结果都是 495,有一个特例 (0,4,7) 结果是0
# N = 4 得到的结果都是 6174
def combin_sub(count):
    result_all = {}
    last_result=None
    total_count = 0
    for result_beg in it.combinations([x for x in range(10)], count):
        total_count += 1
        result = list(result_beg)
        try_count = 100
        # 循环计算最大值-最小值,直到结果不变,为了防止死循环,这里最多100次, count >= 5 时,会写入死循环
        while(try_count > 0):
            try_count -= 1           
            result = delta(result)
            # print(last_result, result)
            if last_result == result:
                break
            last_result = result
            result = convert_2_array(result)

        if try_count > 0:  # 得到有效结果
            result_key = last_result
            if result_key in result_all:
                result_all[result_key].append(result_beg)
            else:
                result_all[result_key] = [result_beg]
        else:
            # print(f"{result_beg} not have result")
            pass
    return total_count, result_all


if __name__ == "__main__":
    for count in range(1, 5):
        print(f"=======calc: count {count}")
        beg_time = time.time()
        (total_count ,result_all) = combin_sub(count)
        for v in result_all:
            print(f"{v}, {len(result_all[v])}")
            if len(result_all[v]) < 10:
                print(f"{v}, {result_all[v]}")
        print(f"calc: count {count},{total_count} cost: {time.time() - beg_time: .3} s \n")


#   result
# =======calc: count 1
# 0, 10
# calc: count 1,10 cost:  9.7e-05 s 

# =======calc: count 2
# 0, 45
# calc: count 2,45 cost:  0.000678 s 

# =======calc: count 3
# 495, 119
# 0, 1
# 0, [(0, 4, 7)]
# calc: count 3,120 cost:  0.00187 s 

# =======calc: count 4
# 6174, 210
# calc: count 4,210 cost:  0.00633 s 
从PTA古风排版题出发,聊聊中文竖排历史与编程中的字符串处理趣事 本文从PTA平台的L1-039古风排版题切入,探讨中文竖排历史与编程字符串处理的关联。通过分析甲骨文到数字时代的排版演变,结合Python代码示例展示如何实现文字竖排转换,揭示传统文化与现代编程的奇妙碰撞。 阅读详情

相关推荐

数字IC笔试题——门控时钟与控制信号电平、与门门控、或门门控、上升沿门控、下降沿门控

从后端设计考虑,在必须使用门控时钟的时候,需要遵循一个原则:门控时钟的输出只能跟着时钟信号进行跳变,而不能跟着控制信号进行跳变,也就是说对于用NAND Gate或者AND Gate实现的门控时钟,控制信号只能在时钟的低电平处进行跳变;使用 ICG 集成门控的库或者原语,应该是不需要考虑的(如果要使用门控时钟,也只能用库或者原语,自己写的还是别用了)。使用下降沿的目的,保证时钟高电平时,输出端不会发生变化,跳变只出现在时钟的低电平区间。(2)ena 高电平开启门控,ena 的电平跳变必须在时钟的低电平区间;

DengFengLai123的博客 1558

逻辑代数的基本公式

数字电路基础——逻辑代数基本公式(b站视频笔记)

m0_72873854的博客 4708

特征提取神操作,登上Nature!计算速度狂提300%!

登上Nature!作者提出CVOCA,一种能同时处理数据的幅度和相位信息的卷积模型,在性能远超SOTA的同时,计算速度更是狂飙300%!实际上,作为机器学习和深度学习的核心技术,特征提取一直都是研究的热门!它直接影响着模型的准确性、计算效率、可解释性……同时,它也是我们改模型涨点,最好操作的部分!因为可切入点的真的非常之丰富,不管是轻量化、多尺度、时域与频域结合等,都能使模型性能得到提升!

2401_82426425的博客 4038

背包问题趣事

今天快下班的时候,有一大学同学发过来一个excel,里面有54个数字,他问我能不能从这54个数字中找出n个数字,加起来刚好等于70708。刚开始就琢磨着用遍历算法来解决问题,想着想着感觉太晕了,复杂度太高了。灵感突然来袭,这不是在学校里面学过的典型的背包问题么,看来大学里面也不是什么都没有学到哈。知道了问题的出处,事情就好办了,下面直接上代码。 public class knapsac...

weixin_30730151的博客 91

锐捷交换机堆叠配置举例

一、组网需求: 1)四台S2628G进行堆叠; 2)设备在堆叠前先设置好优先级; 3)使用光口堆叠的设备如RG-S2928G-E相关配置 二、组网拓扑 三、配置要点: 普通堆叠设备不需要配置,只要把堆叠模块和线缆连接好即可 堆叠模块不支持热插拔,即插在模块连上线缆后不能立即生效,需要重启设备才生效。 如果拔掉堆叠插槽后,想再插上模块堆叠,那么必须重启设备才生效 设备堆叠需要协商参数,时间会比较久,请耐心等待 堆叠时设备建议是...

dongsheng_9234的专栏 8287

手把手教你使用HFSS仿真高速差分过孔—上

高速数字电路设计中,信号完整性是一个非常重要的问题。为了使信号保持良好的传输特性,PCB板上的互联线一般都采用均匀传输线,使互联线保持特性阻抗一致性,减少信号反射。然而PCB板上的互联线很多时候避免不了换层的问题,这时候就必须使用过孔。过孔会导致阻抗不连续,进而造成反射,出现信号完整性问题。         当信号传输速率越高,信号前沿越短的时候,过孔引入的信号完整性问题越严重,需要对过孔进行优

a2447944219的博客 2万+

【C++那些趣事】如何让输出的内容变色

本文介绍了如何在C++中实现控制台输出内容变色效果。Windows系统需包含windows.h头文件,使用SetConsoleTextAttribute函数,可通过三基色表示法或颜色编号设置文本/背景颜色。Linux系统则使用"\033[颜色编号m"格式的ANSI转义序列。文章提供了详细的代码示例和颜色对照表,并指出需要注意颜色设置的持续性和不同系统的兼容性问题。这些技巧能让控制台输出更加醒目美观。

2401_85898378的博客 740

手把手解决GD32H759I-EVAL以太网通信三大坑:IP冲突、端口绑定失败、LWIP内存泄漏

本文针对GD32H759I-EVAL开发板在以太网通信调试中常见的三大难题——IP地址冲突、端口绑定失败和LWIP内存泄漏,提供了详细的实战排障指南。文章深入分析了问题根源,并给出了具体的网络配置、端口管理策略和内存泄漏检测方法,帮助开发者快速定位并解决嵌入式网络通信中的棘手问题,确保系统稳定运行。

weixin_29196315的博客 141

QQ后四位的趣事

QQ最后四位数 ,从倒数第四位到倒数第一位按照下面的顺序来哦: 倒数第四位是: 1.蜡笔小新 2.奥特曼 3.犀利哥 4.西施 5. 猪八戒 6.爆牙兄 7. 芙蓉姐姐 8.潇洒哥 9.美羊羊 0.章鱼哥 倒数第三位是: 1.在学校 2.在公交车上 3.在厨房 4.在厕所 5.在浴缸里 6.在阳台上 7.在书桌上 8.在床上 ...

web开发自学 87

MCSDK5.4.8电机库双电阻采样适配:从扇区判断到固定采样的重构实践

本文详细解析了MCSDK5.4.8电机库中双电阻采样技术的重构实践,从扇区判断到固定采样的关键步骤。通过硬件配置优化、核心文件重构及电流读取函数改造,实现高效稳定的电机控制,特别适用于成本敏感型项目。文章还提供了占空比限制计算、参数调整及常见问题排查等实用技巧,助力工程师快速掌握两电阻采样方法。

weixin_42532938的博客 281

45、使用 sqlread 函数将数据从数据库表导入 MATLAB

本文详细介绍了如何使用 MATLAB 中的 `sqlread` 函数从不同类型的数据库(如 Microsoft SQL Server 和 SQLite)中导入数据。文章涵盖了 `sqlread` 的基本语法、输入输出参数、使用示例以及注意事项,并通过多个实例演示了自定义导入选项、元信息检索和数据类型转换等内容。此外,还总结了导入数据库数据的通用流程及最佳实践建议,帮助用户更高效地进行数据分析和处理工作。

bash7scripter的博客 134

【题解】vijos P1071 新年趣事之打牌

相对复杂的背包问题。首先注意是判断组成总质量-剩下牌总重量的组成。利用类似的判断背包内数字组合的方法,只不过这次不是判断能不能组合而是求组合数目,利用这个数目=0就输出0,&gt;1就输出-1可以AC6个点。对于=1时求牌编号的情况,由于这种情况一定是唯一的,所以我们可以在求组合数目的时候就用fa数组记录下一个质量的上一个质量,用num数组记录这个质量由上一个质量推过来的编号。注意要判断编号被覆盖...

Rem_Inory的博客 353

【STK】手把手教你利用STK进行弹道导弹和运载火箭发射仿真的相关方法全过程解析

写这个系列主要是这几年做了一些弹道导弹和运载火箭发射的相关仿真项目,stk软件由于其专业性在国内比较小众,相关的教程和书籍、经验贴都不是很多,因此新手在进行开发中容易遇到较多困难,把自己的一些经验体会写下来,一方面供自己总结回顾,另一方面也希望对大家有所帮助。这个系列计划分几篇文章写完,每章的内容结构相似,都分为①如何确定发射场位置和发射轨迹、②导入导弹和运载火箭模型、③设计模型分段动作、④飞行参数分析和相关应用这四个部分,每篇文章争取完整描述1-2个实际项目的操作过程。

weixin_44184852的博客 5988

Linux 是洗衣粉?关于Linux 的10个趣事

看看这些关于Linux及其广泛使用的令人惊讶的趣事。如果有什么要补充的,请在评论中分享。今天,Linux操作系统驱动着超级计算机、子弹头列车、好莱坞电影、潜艇、国际空间站、纽约证券交易所等...

关注微信公众号【开源Linux】,后台回复『10T』,领取10T学习资源大放送,涵盖Linux、虚拟化、容器、云计算、网络、Python、Go等书籍和视频 234

【DRAM存储器六十九】DDR5介绍--2N mode 和 CS Geardown mode

摘要: DDR5内存速率提升至8400MT/s以上时,信号完整性成为关键挑战。JEDEC在JESD79-5B标准中引入2N Mode和CS Geardown Mode两项技术,通过“时间换稳定性”优化时序裕量。2N Mode默认启用,将命令周期延长至两倍时钟周期,增强全局命令稳定性;CS Geardown Mode则针对片选信号(CS_n)降低采样频率,提升局部信号容错能力。两者均需通过特定寄存器配置,适用于高频场景下的性能与稳定性平衡。这些技术为DDR5在高频运行中提供了可靠的时序保障。

highman110的博客 226

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

js里面字符数字和数字相加_「译」5 个奇怪的只会在 JS 里才发生的趣事

JavaScript 是一门棘手的语言,就其代码的解析和运行方式,容易让人感觉困惑。这是一门面向对象的语言,但很多年来语言标准里没有类。它最初是为浏览器创造的,但现在也可以在服务器上运行,还可以操作文件系统。多年以来,我碰到了一些特殊且有趣的代码。下面展示的这些例子仅适用于 JavaScript,我总结了 5 个。1. 连接数组得到的是字符串用 + 号连接数组得到的结果是字符串。这件令人困惑的事情...

weixin_39593277的博客 184

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

「译」5 个奇怪的只会在 JS 里才发生的趣事

JavaScript 是一门棘手的语言,就其代码的解析和运行方式,容易让人感觉困惑。这是一门面向对象的语言,但很多年来语言标准里没有类。它最初是为浏览器创造的,但现在也可以在服务器上运行,还可以操作文件系统。 多年以来,我碰到了一些特殊且有趣的代码。下面展示的这些例子仅适用于 JavaScript,我总结了 5 个。 1. 连接数组得到的是字符串 用 + 号连接数组得到...

小分享 728

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

密码锁(春季每日一题 29)

农夫约翰的奶牛们总是偷偷的逃出他的农场,去外面为非作歹。 农夫约翰为了防止它们私自逃离农场,购买了一个密码锁,以此阻止奶牛们打开农场大门。 约翰知道他的奶牛们都非常聪明,因此他想要确保它们不能通过简单的尝试一些密码组合,就轻易的将锁打开。 锁具上有三个密码拨盘,每个拨盘上的数字为 1…N1…N1…N,其中 111 和 NNN 相邻(因为拨盘是圆形的)。 一共有两种可以打开密码锁的数字组合,一组是约翰设置的密码组合,一组是制造商设置的密码组合。 这种锁具有一定的容错性,只要三个表盘上的数字与任意一组正确密码组

多思考🤔~ 1020

数字沟通新语言:从表情符号到专业字符的实用指南

本文探讨了数字沟通中从表情符号到专业字符的实用技巧,涵盖Unicode编码发展、表情符号的社交艺术、专业场景应用及跨文化注意事项。特别解析了如何在职场和跨国沟通中精准使用符号,避免歧义,并分享提升输入效率的实用工具和创意表达方法,助力读者掌握数字时代的新语言。

weixin_29095049的博客 223

从ASCII码到Unicode,最终选择UTF-8编码的趣事【学习笔记】

https://www.bilibili.com/video/BV1h7411V7Xw?from=search&seid=6458930640632168365 上面链接位B站视频链接,讲的是字符串编码,是我所看到的讲解最好的一个,希望对你有帮助。 上一张图: 以下位对上图的一种解释。 在计算机中,基本的存储单位为位:bit 一个位可以表示两种数字0和1,一个字节(Byte)= 8位(bit) 可以表示成256种组合 如何把数字汉字等字符存储在计算机中,工程师们发明了一种ASCII 码,上个实际60

求津问道的博客 331

广告行业中那些趣事系列71:使用chatgpt来抽取关键词实践

导读:本文是“数据拾光者”专栏的第七十一篇文章,这个系列将介绍在广告行业中自然语言处理和推荐系统实践。本篇介绍了使用chatgpt模型通过prompt engineer技术来抽取关键词,对于希望学习ChatGPT并应用到实践的小伙伴可能有帮助。欢迎转载,转载请注明出处以及链接,更多关于自然语言处理、推荐系统优质内容请关注如下频道。知乎专栏:数据拾光者公众号:数据拾光者01 背景介绍关于关键词抽取方...

abc50319的专栏 1309

dp 部分和问题及其扩展

** 一.部分和问题 ** 给定整数 a1、a2、…、an,判断是否可以从中选出若干数,使它们的和恰好为 k。 首先,我们定义dp数组 dp[i][j] 代表使用前i个数字能否组成j这个数字 其次,我们发现dp[i][j] 是可以由dp[i-1][j-a[i]] 推出的,因此我们由状态转移方程 dp[i][j] |= dp[i-1][j-k* a[i] (k=0,1 且 j>=k*a[i[) 初始化:dp[0][0] = 0; #include <bits/stdc++.h>

qq_50748356的博客 1017

飞书、钉钉、企业微信接入AI编程Agent:WeSight IM Agent Hub多通道配置实战

**WeSight 的 IM Agent Hub 功能可以让飞书、钉钉、企业微信等 IM 机器人直接驱动 AI 编程 Agent**,在聊天窗口里一句话就能调用 Claude Code、Codex、OpenClaw 等引擎完成编码任务。本文带你完成多通道接入配置。 [![WeSight IM Agent Hub 协作工作台,任务列表中可见来自飞书频道的 Agent 会话](https://raw

gitblog_09704的博客 973

JAVA 蓝桥杯 B组马虎的算式

马虎的算式 小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。 有一次,老师出的题目是:36 x 495 = ? 他却给抄成了:396 x 45 = ? 但结果却很戏剧性,他的答案竟然是对的!! 因为 36 x 495 = 396 x 45 = 17820 类似这样的巧合情况可能还有很多,比如:27 x 594 = 297 x 54 假设 a b c d e 代表1~9不同的5个数字(注意是各不相同的数字,且不含0) 能满足形如: ab x cde = adb x ce 这样的算式一共有多少种呢

m0_46625346的博客 539

有趣的年龄故事

数学家诺伯特.维纳的年龄趣事 20世纪著名数学家诺伯特.维纳,从小就智力超常,三岁时就能读写,十四岁时就大学毕业了。几年后,他又通过了博士论文答辩,成为美国哈佛大学的科学博士。   在博士学位的授予仪式上,执行主席看到一脸稚气的维纳,颇为惊讶,于是就当面询问他的年龄。维纳不愧为数学神童,他的回答十分巧妙:“我今年岁数的立方是个四位数,岁数的四次方是个六位数,这两个数,刚好把十个数字0、1、2、...

weixin_30439031的博客 210
上一篇: python工具-解析wireshark的rtp抓包
下一篇: python工具-udp-tcp-client-server-demo
knowledgebao
博客等级 码龄15年 401粉丝 198原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值