Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >序列避免近碰撞

任务

找到在最小和最大之间的所有数字的序列,其中每个数字与序列中的每一个其他数字至少有"d“位数不同。

子序列

实例

对于min = 0,max = 1000和d= 2,以下是一个可能的解决方案序列的一部分:

  • 123←好
  • 132←良好
  • 145←好
  • 146←坏

Notes

这有点实际。多年来,我一直认为这是一个不断出现的问题。基本上这是网址缩写/奖品代码/会议室代码/等等的一种模式.

我希望能够从列表中分发代码,并且让每个代码都是:a--输入简单,B--不太可能因为键入错误而意外地与另一段代码发生冲突。

没有理由在10号基地工作。为了清晰起见,我用这种方式表达了这个问题,但在实际情况下,我们也会利用字母。

子-Note

这没那么实际。如果您只使用六个“数字”(允许数字和大写字母),那么您就有超过20亿种选择。在大多数情况下,这似乎是足够的,除了URL缩短器。尽管如此,我还是在想,能够从这个空间生成一个随机数,并且能够快速地检查它是否至少与所有其他已经分发的数字不同,这将是很好的。生成一个解决方案序列不是完全相同的问题,但它似乎很有趣,我希望有人想出一种聪明的方法来构造数据,以便有效地搜索这些近距离碰撞。

EN

回答 1

Code Golf用户

发布于 2016-07-03 11:09:34

这是一种可怕的,蛮力的方式来产生序列。虽然这里可能有几个简单的收获,但我并没有尝试做太多的事情来加快速度。我试着想出一种方法,至少能使这个速度快几个数量级,而不是找出几个百分点的改进。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static IEnumerable<int> GetDifferentCodes(int min, int digits, int minDifference)
{
    var max = Math.Pow(10, digits) - 1;
    var goodCodes = new List<int>();
    var goodCodeDigits = new List<short[]>();

    for (var i = min; i < max; i++)
    {
        var newDigits = GetDigits(i, digits);

        if (!goodCodeDigits.All(goodCode => HasMinDiff(goodCode, newDigits, digits, minDifference)))
            continue;
        goodCodes.Add(i);
        goodCodeDigits.Add(newDigits);
    }
    return goodCodes;
}

private static readonly int[] Powers = {1, 10, 100, 1000, 10000, 100000, 1000000, 10000000};

private static short[] GetDigits(int num, int digits)
{
    var ret = new short[digits];
    for (var i = 0; i < digits; i++)
    {
        ret[i] = (short) ((num/Powers[i]) % 10);
    }
    return ret;
}

private static bool HasMinDiff(short[] goodDigits, short[] digitsToCheck, int digits, int minDiff)
{
    var difference = 0;
    for (var i = 0; i < digits; i++)
    {
        if (goodDigits[i] == digitsToCheck[i]) continue;
        if (++difference >= minDiff) return true;
    }
    return false;
}
票数 0
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/84376

复制
相关文章
Python函数参数总结(位置参数、默认参数、可变参数、关键字参数和命名关键字参数)
Python函数的参数多达5种,不像Java那样参数只有一种,而是像C++那样提供默认参数,除此之外,还提供可变参数、关键字参数、命名关键字参数,这样就使得Python函数的参数变得十分复杂。但复杂意味着灵活便捷,Python语言之所以流行起来,与起本身巨大的灵活性是分不开的。可以说Python是最方便使用的语言。 Python参数类型: - 位置参数(positional arguments,官方定义,就是其他语言所说的参数) - 默认参数(类似C++的默认参数) - 可
Steve Wang
2018/02/05
22.2K0
Python函数参数总结(位置参数、默认参数、可变参数、关键字参数和命名关键字参数)
关于apt-get命令介绍及其参数使用
高级包装工具(英语:Advanced Packaging Tools,简称:APT)是Debian及其衍生发行版(如:ubuntu)的软件包管理器。APT可以自动下载,配置,安装二进制或者源代码格式的软 件包,因此简化了 Unix系统上管理软件的过程,apt-get命令一般需要root权限执行,所以一般跟着sudo命令。
菲宇
2022/12/02
1.3K0
拼接GET请求的参数
本人在做接口测试的过程中,之前写了一个用字符串替换的方法来处理get接口的参数拼接,后来优化了这个方法,兼容了中文字符提示非法字符的情况,使用了java自带的urlencode方法。包括第一种方法,之前传的是json。分享代码,供大家参考。
FunTester
2019/09/25
3.9K0
excel导出使用get请求参数过长问题
excel导出功能时,使用的是window.location.href=url也就是get请求。当传入参数过长的时候就报了414,地址过长的错误。
用户1518699
2018/12/14
2.1K0
excel导出使用get请求参数过长问题
Python - 函数形参之必填参数、缺省参数、可变参数、关键字参数的详细使用
声明函数时,当同时存在必填参数和缺省参数,形参的顺序必须是 (必填参数 , 缺省参数),不能缺省参数在前
小菠萝测试笔记
2020/06/09
3.5K0
Python - 函数形参之必填参数、缺省参数、可变参数、关键字参数的详细使用
软件测试|Python函数参数之必传参数、默认参数、可变参数、关键字参数的详细使用
在Python中,函数参数是定义在函数头部的变量,用于接收传递给函数的数据。Python函数参数有四种类型:必传参数、默认参数、可变参数和关键字参数。每种类型都有不同的使用方式和适用场景。本文将详细介绍这四种函数参数的使用方法。
霍格沃兹测试开发Muller老师
2023/10/13
5220
【说站】python关键字参数的多种使用
2、在定义函数时,如果参数列表中的某个参数使用**参数名称,则该参数可以接受所有关键词参数。
很酷的站长
2022/11/24
2860
【说站】python关键字参数的多种使用
Python 关键字参数和可变参数
如果你有一些具有许多参数的函数,而你又希望只对其中的一些进行指定,那么你可以通过命名它们来给这些参数赋值——这就是python关键字参数(Keyword Arguments)——我们使用命名(关键字)而非位置(一直以来我们所使用的方式)来指定函数中的参数。
py3study
2020/01/16
1.2K0
nodejs获取GET参数例子
var http = require('http'), url = require('url'), querystring = require('querystring'); http.createServer(function(req, res){ var pathname = url.parse(req.url).pathname, paramStr = url.parse(req.url).query, param = querystring.parse(paramStr); if('/f
苦咖啡
2018/05/08
1.9K0
OpenCV VideoCapture.get()参数详解
param define cv2.VideoCapture.get(0) 视频文件的当前位置(播放)以毫秒为单位 cv2.VideoCapture.get(1) 基于以0开始的被捕获或解码的帧索引 cv2.VideoCapture.get(2) 视频文件的相对位置(播放):0=电影开始,1=影片的结尾。 cv2.VideoCapture.get(3) 在视频流的帧的宽度 cv2.VideoCapture.get(4) 在视频流的帧的高度 cv2.VideoCapture.get(5) 帧速率 cv2.Vi
NateHuang
2019/03/12
1.3K0
SAP ABAP 使用内存参数设置SET /GET PARAMTER ID
SET /GET PARAMTER ID使用SPA/GPA 参数--SAP内存参数设置
matinal
2020/11/27
2.2K0
SAP ABAP 使用内存参数设置SET /GET PARAMTER ID
函数的关键字参数
def func1(name, age, sex, *args): ''' 打印姓名,年龄,性别 ''' print(name) print(age) print(sex) # func1('python', 28,sex='man','s','23') ## 工作经验:不定长参数都是放到最后 func1(name='python', age=30, sex='nv') help(func1) # def func1(a,b, c=100,*args,**
汪凡
2018/05/29
5460
【说站】python命名关键字参数的使用注意
1、如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了。
很酷的站长
2022/11/23
4440
为啥 Java 中不推荐将 Optional 当做参数使用?
最近开发过程中,身边的同事为了实现逻辑复用,定义一个私有公共方法实现逻辑复用,定义函数签名时将上游的 Optional 作为参数传递。 IDEA 给出警告,但是并没有讲清楚为什么。
明明如月学长
2021/12/27
3K0
为啥 Java 中不推荐将 Optional 当做参数使用?
使用js获取url中的get参数并转成json格式
写在前面的 没啥说的 上代码 思路就是先获取到?后面的参数区,然后 利用字符串转数组方法获取到各个参数 var json = {}; var url = 'https://www.ba
Theone67
2019/11/21
6.3K0
解决PHP使用CURL发送GET请求时传递参数的问题
最近在使用curl发送get请求的时候发现传递参数一直没有生效,也没有返回值,以为是自己哪里写错了,网上找东西时也没有人专门来说get请求传递参数的内容,所以,今天在这里记录一下,希望可以帮到一些人
用户8675788
2021/07/13
2.6K0
PHPCMS不增加关键字搜索次数
打开phpcms/modules/serach/index.php 第95行左右,代码如下
李维亮
2021/07/09
2.9K0
获取URL地址中的GET参数
/*-----------------实现1--------------------*/ function getPar(par){ //获取当前URL var local_url = document.location.href; //获取要取得的get参数位置 var get = local_url.indexOf(par +"="); if(get == -1){ return false; } //截取字符串
似水的流年
2018/01/18
7.1K0
[javascript] js获取url中的get参数
调用数组的map函数 , map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
唯一Chat
2021/05/17
10.6K0
点击加载更多

相似问题

TypeError: iter()不使用关键字参数

14

TypeError: append()不使用关键字参数

111

使用获取"TypeError: get()获得一个意外的关键字参数‘字段“

10

TypeError: HTTPException()不使用关键字参数

17

TypeError: openlog()不使用关键字参数

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文