首页 > 其他分享 >递归示例-指定数字以内的所有排列组合(Base)

递归示例-指定数字以内的所有排列组合(Base)

时间:2024-07-10 17:20:06浏览次数:9  
标签:Base 进制 示例 SEQUENCE BASE 排列组合 SUBSTITUTE

指定数字以内的所有排列组合:

定义名称版:

=pmtB(指定数字)
     =LAMBDA(x,IF(x=1,1,VSTACK(pmtB(x-1),SUBSTITUTE(BASE(SEQUENCE(x^x)-1,x,x),0,x))))

不定义名称版:

=LET(fx,LAMBDA(npmtB,x,IF(x=1,1,VSTACK(npmtB(npmtB,x-1),SUBSTITUTE(BASE(SEQUENCE(x^x)-1,x,x),0,x)))),fx(fx,B5))

看一下效果:

递归部分,就是一个纵向的堆叠,把1个数、两个数、三个数排列组合累在一起。

关键是Base!

 这是一个将10进制转成任意进制的函数,需要转成几进制,第二参数就用几;转出来的结果要显示成几位数,第三参数就用几。

比如把0、1、2、3四个数转成二进制,保留两位,得到的结果分别是00、01、10、11。这结果是不是有种眼熟感?

对了,把0换成2,就是1和2的所有组合:22、21、12、11。

所以也可以反过来说,1和2的所有组合,就是4(也可以说成2的2次方)个数字的二进制,显示两位,再把其中的0换成2……这么多2(……

那么,1、2、3的所有组合,不就是27(3的3次方)个数的三进制,显示三位,再把其中的0换成3……

所以这公式就是:

=SUBSTITUTE(BASE(SEQUENCE(x^x)-1,x,x),0,x)

其中的x就是所期待的几位数……好吧,Excel同学最大就只能算到7。

没办法,谁让人家最多才一百多万行的容量呢。

标签:Base,进制,示例,SEQUENCE,BASE,排列组合,SUBSTITUTE
From: https://www.cnblogs.com/officeplayer/p/18294603

相关文章

  • 设计模式使用场景实现示例及优缺点(创建型模式——单例模式、建造者模式、原型模式)
    创建型模式单例模式(SingletonPattern)单例模式(SingletonPattern)在Java中的使用场景与在其他编程语言中类似,其主要目的是确保一个类只有一个实例,并提供一个全局的访问点。以下是单例模式的一些常见使用场景及详细讲解:使用场景控制资源的使用:数据库连接池:数据库连接是......
  • 设计模式使用场景实现示例及优缺点(结构型模式——代理模式、外观模式)
    结构型模式代理模式(ProxyPattern)代理模式(ProxyPattern)是一种结构型设计模式,它通过引入一个代理对象来控制对另一个对象的访问。这个代理对象可以为被代理的对象提供额外的功能,例如访问控制、延迟初始化、日志记录、或网络访问等。适用场景远程代理:为一个对象在不同......
  • liquibase脚本自动生成数据库表
    日常开发中,需要进行数据库设计建模,创建对应的表,可通过liquibase脚本自动生成数据库表,减少开发时间。1.项目中pom文件引入liquibase的maven依赖<!--liquibasestart--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-start......
  • UML图书管理系统用例图示例
    新书速览|《UML2.5基础、建模与设计实践》新书速览|《UML2.5基础、建模与设计实践【例4.4】图书管理系统用例图。图书管理系统按其业务功能分成借阅者管理、图书管理、借书、还书和用户管理等几部分,这些职能对应于系统的不同组织部门。1)系统参与者图书管理系统针对的对象......
  • Franka Robot 测试网络性能的示例(communication_test.cpp)
    //Copyright(c)2023FrankaRoboticsGmbH//UseofthissourcecodeisgovernedbytheApache-2.0license,seeLICENSE#include<chrono>#include<iostream>#include<thread>#include<franka/active_control.h>#include<frank......
  • OceanBase 配置项&系统变量实现及应用详解(2):系统变量的定义及使用场景
    在上一篇博客,配置项的定义及使用方法,详细阐述了配置项的概念及其基本应用方式,这些配置项能够调控集群或租户的行为方式。然而,在实际使用OceanBase的过程中,我们有时仅希望针对当前会话调整某些行为特性,且在关闭会话连接后,这些调整不会影响后续的使用。此时,我们就需要借助“系统......
  • 教你了解八大排序(含代码注释示例java)
    目录1.冒泡排序(BubbleSort)2.选择排序(SelectSort)3.插入排序(InsertionSort)4.希尔排序(ShellSort)5.归并排序(MergeSort)6.快速排序(QuickSort)7.堆排序(HeapSort)8.基数排序(RadixSort)1.冒泡排序(BubbleSort)这是最简单的排序算法之一。它......
  • SpringBoot集成Rabbitmq快速启动示例
    RabbitMQ六种模式示例源码:ghdefe/rabbitmq-demo此项目分别演示六种模式:简单模式、工作模式、发布/订阅模式、路由模式、主题模式、RPC模式简单模式:生产者直接发送消息到队列、消费者直接消费队列、不经过交换机工作模式:与简单模式一致,只是变成多个消费者消费同一......
  • metabase邮件去除标志
    1、    修改预警邮件标题(1)    src/metabase/pulse.clj第171行将Metabase改成Daip改为 2、测试邮件(2)、src\metabase\api\email.clj第105行和第108行将Metabase改为Daip原:改:3、邮件中的metabase的logo(3)src\metabase\email\_footer.mustache 第7行......
  • 将metabase中的/auth/login替换为/daip/common/toLogin
    将metabase中的/auth/login替换为/daip/common/toLoginmetabase-0.31.2\frontend\src\metabase\routes.jsx109行修改为/auth/logout181行修改为/daip/common/toLoginmetabase-0.31.2\frontend\src\metabase\auth\components\BackToLogin.jsx第6行修改为/daip/common/toL......