(图片来源网络,侵删)
今天进行一次网友答疑,如何扣除指定数字后生成随机数首先看一下这位网友的需求,他希望进行一个问题,共有两列数据,第一列数据跟第二列数据数据内容相同,比如都是从1到10,但要求同一行数据的两个数据是不同的,还要有一个随机生成的功能,该怎么操作?现在来演示一下·首先新建空白表格,现在一共有两列数据,一个是1-10,另外一个需要输入随机输入列度,输入一个4因为有4存在,所以后面一列的数据只能是1-3,5-10需要跳过已有的数据这样该怎么实现?其实方法很简单·既然需要跳过,需要找做一个递归,把1-10跟后面的已经已有的数据先剔除即可·既然如此,选择名称管理器,在这里面首先新建一个名称,例如现在所说的递归,在其后面需要输入·既然需要涉及到递归,需要输入lambda作为一个匿名函数,进行一次递归处理·接下来需要涉及到两个参数,一个是x,一个是y前者需要保证是1-10或者1到几,最大值是多少,进行一次递归的问题第二个参数则需要输入需要剔除的是哪个数字·接下来在其后面输入一个if执行判断既然已经知道存在一个递归,所以需要设置到一个最小值的问题,把它当输入一个0,当x等于0的时候就返回,因此返回一个0·除此以外再次进行一次if判断,也就是当x不等于0的情况下需要进行递归操作这时候需要进行判断f等于y的时候,也就是当遇到一个需要剔除项的时候需要执行什么命令?在这里先跳开·接下来是当正常情况下,也就是剔除完以后默认状态下,首先需要进行一次绑定vstack,也就是需要通过一个符合条件内的内容,需要把它组建成一个新的数组在这里面重新输入一个递归,这时候就是设置到现在这里递归一个新的函数·既然已经有了一递归,只需要把递归减一即可,也就是随机生成数字减一进行减y,这样重新把需要剔除的传递进来·然后需要把已有的数据传递完以后再减一进行下一次的递归轮回在这个情况下选择一个x,在这时候可以看到已经把本次的已经符合内容情况下把x传递进来进行组成一个数组,然后进行下一轮的轮回·把下面的轮回放进进来重新组成一个新的数组,最后生成的就是所需要的,扣除了这里面还没输入的内容就扣除了一个y(这里是口误)以外所对应的数组·接下来需要输入一下,当遇到一个x等于y情况下就等于需要被剔除的数组情况下,这时候同样选择vstack,选择符号,这时候一样选择递归,x减一等于y,逗号y·这时可以看到因为只要考虑的是遇到x等于y情况下,也就这个数字需要扣除的,因此这里不需要再输入x乘以5,只能逗号y了,不需要把这个数字列入一个新的数组,只需要保证原有数组即可·在这情况下把后面的括号全部圆,可以看一下前面有123,有三个括号,在其后面也输入三个括号,123,把它进行圆进来,点击确认,这时候就可以把一个递归生成完成了·接下来来实现一下,例如现在一共有10个数据,在这里输入,等一下输入一个递归,选择括号,这时候总共有10个数据,选择一个10,选逗号需要剔除的是一个4,选择括号,看到没有01234没有了,5678910出来了·同样道理,在这里面如果需要剔除一个2,看一下01,没有了,3、4、5、6、7、8、9、10通过这种方法就可以很完美地剔除到所需要的内容,把它重新生成一个新的数组·既然已经存在了数组,接下来需要进行筛选,CSOOSE ROWS选择括号,这时候会看到后面所传递的新数组都是符合现在已经被剔除内容,就剔除的2情况下所对应的新的数组,也就是这里面数组都是反符合所需要要求·在这个情况下随机生成的抽取任何一个值都是符合的值,可以看到在这里面默认是0,0需要剔除既然如此,在这里面输入CHOOSEROWS情况下选择括号,所需要生成的抽取范围就输RANDBETWEEN括号,这时需要输入2,选逗号,因为需要把第一个的0去扣除,所以输入2·接下来可以看到现在位置总共有10个数据,因为前面有10,所以就随身体范围内也是需要输入10,现在选择回车,这样就可以生成一个既符合要求又是符合范围内的值·在这里演示一下,这里面抽取一个是剔除范围,剔除范围,剔除范围,剔除3,在这里面递规总共是10个,需要剔除3,把它移动一下,剔除3·然后可以在这里面领先一个随机数ING,随机数ING是1-10,这边进行随机生成,返回值·在这时候可以看到23、6、3、1、6、7、8、6、2、1、8、25、3、9、4、80,这样就不会存在重复情况了,就这样子
0 评论