用于大型数组的 php in_array 的替代方案,以避免重复条目

2024-01-02

我需要生成一个从 600k 到 2000k 的大量随机数列表,但是 列表不能有重复项。

我当前的“实现”如下所示:

<?php
    header('Content-type: text/plain');
    $startTime = microtime(true);
    $used = array();
    for ($i=0; $i < 600000; ) { 
        $random = mt_rand();
        //if (!in_array($random, $used)) {
        $used[] = $random;
        $i++;
        //}
    }
    $endTime = microtime(true);
    $runningTime = $endTime - $startTime;
    echo 'Running Time: ' . $runningTime;
    //print_r($used);
?>

如果我保留in_array测试评论处理时间在1秒左右,所以 这mt_rand电话和used数组填充相对“便宜”,但是当我取消注释时 in_array 测试发生了不好的事情! (我只是在等待 - 已经超过 10 分钟 - 脚本终止......)

因此,我正在寻找重复检测方面或生成部分的替代方案(如何在没有重复风险的情况下生成随机数)

我愿意接受任何建议。


对于快速/肮脏的解决方案,使用/检查数组键是否可以提高速度?

$used = array();
for ($i = 0; $i < 600000; ) { 
    $random = mt_rand();
    if (!isset($used[$random])) {
        $used[$random] = $random;
        $i++;
    }
}
$used = array_values($used);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于大型数组的 php in_array 的替代方案,以避免重复条目 的相关文章

  • 如何通过传递国家代码或国家名称在php中获取时区

    我使用一些 api 有国家代码和国家名称 有什么方法可以在 php ini 中获取给定国家代码和国家名称的时区 我有这样的数据 address Object city continent Asia continent code AS cou
  • 使用 GPU 进行 Matlab 卷积

    我用gpuArray尝试了matlab的卷积函数conv2 convn 例如 convn gpuArray rand 100 100 10 single gpuArray rand 5 single 并将其与 cpu 版本 convn ra
  • 加密单个int的方法

    如何以廉价的方式对 32 位 int 进行双向加密 使每个数字都映射到该空间中的其他 int 并以难以预测的方式映射回来 当然 并且不需要在映射表中预先存储 42 9 亿个整数 您想要的是 32 位分组密码 不幸的是 大多数分组密码都是 6
  • 如何在 PHP Soap 客户端中禁用命名空间别名?

    我的 PHP Microsoft AX 集成有问题 我正在使用 SOAP WSDL 与服务集成 我遇到的问题是在从 PHP 向 WSDL 发送请求后收到此错误 无效的实例类型名称 ns3 AxdEntity DirParty DirOrga
  • 干预/图像上传错误{{图像源不可读}}

    我正在尝试添加个人资料图片上传拉拉维尔 5 1 我用的是Intervention Image打包但当我尝试上传图像时出现此错误 AbstractDecoder php 第 302 行中的 NotReadableException 图像源不可
  • 缓存施瓦茨变换

    我正在学习 中级 Perl 它非常酷 我刚刚读完 施瓦茨变换 部分 在理解它之后 我开始想知道为什么变换不使用缓存 在具有多个重复值的列表中 转换会重新计算每个值的值 因此我想为什么不使用哈希来缓存结果 这是一些代码 a place to
  • Clang 与 1 优化相反

    经过与同事的讨论后 我最终测试了 clang 是否可以将倒数为 1 的两个分区优化为单个分 区 const float x a b x not used elsewhere const float y 1 x 理论上 clang 可以优化为
  • 为什么线程本地存储不使用页表映射来实现?

    我希望使用 C 11thread local将非常频繁地访问的每线程布尔标志的关键字 然而 大多数编译器似乎都使用一个表来实现线程本地存储 该表将整数 ID 槽 映射到当前线程上的变量地址 此查找将发生在性能关键的代码路径内 因此我对其性能
  • 将行分组在一列上并与其他列形成嵌套子数组

    这是我试图处理的事情 我的数组看起来像这样并且有重复项 products product name gt Adidas1 address gt street 2 product name gt Adidas2 address gt stre
  • 让 PHP 脚本永远循环执行队列系统中的计算作业

    目前 我有一个永远在我的服务器上运行的 perl 脚本 检查 SQS 是否有要计算的数据 该脚本已经运行了大约 6 个月 没有出现任何问题 所以 现在我想切换到 PHP 的 CLI 并让脚本永远循环在那里 主要是因为我对PHP比较熟悉 Ba
  • 从 https 切换到 http 时违反 RewriteRule

    我写了很多重写规则 in my htaccess文件 但是当我从https to http页面 它不遵守这些规则 NOTE 本地主机上一切正常 问题出在服务器上 UPDATE 这是我的website http www charityrumm
  • PHP fscanf 与 fgets

    我可以使用读取一行中的整个字符串fgets but fscanf 没有这样做 根据PHP手册 fscanf 根据格式解析文件的输入 功能fscanf 类似于sscanf 但它从与句柄关联的文件中获取输入 并根据指定的格式解释输入 这在文档中
  • Symfony2 将复选框值从 0/1 更改为“no”/“yes”

    我创建了一个带有一个复选框的表单 用户设置类型 php public function buildForm FormBuilderInterface builder array options builder gt add newslett
  • 如何获取PHP版本?

    有没有办法检查从该脚本中执行特定脚本的 PHP 版本 例如 下面的代码片段 version way to get version print version 将在一台机器上打印 5 3 0 在另一台机器上打印 5 3 1 version p
  • 为什么 LinkedList 通常比 List 慢?

    我开始在我的一些 C 算法中使用一些 LinkedList 而不是列表 希望能够加快速度 然而 我注意到他们只是感觉更慢 像任何优秀的开发人员一样 我认为我应该尽职调查并验证我的感受 所以我决定对一些简单的循环进行基准测试 我认为用一些随机
  • PHP 将日期与今天的日期进行比较

    我正在尝试采用以下格式的信用卡到期日期mm yy并查看该日期是否已过 以便我知道信用卡是否已过期 如果已经过期 则一类expired被插入到 tr 我的代码结果检查了 05 16 的样本日期 并且脚本显示该卡尚未过期 而显然该卡已经使用了一
  • 如何优化这个查询(涉及4毫米表)

    我正在使用如下所示的遗留数据库架构 product table表有字段 uid 整数 主键 name varchar 50 category表有字段 uid 整数 主键 name varchar 50 好吧 现在product table与
  • php平台安装询问我intl扩展,但似乎已经安装

    在 orocrm 安装期间 使用 symfony 2 开发的平台 我收到此错误 Fatal error Uncaught exception Symfony Component Intl Exception MethodArgumentVa
  • 编译器什么时候内联函数?

    在 C 中 函数仅在显式声明时才内联inline 或在头文件中定义 或者编译器是否允许内联函数 因为他们认为合适 The inline关键字实际上只是告诉链接器 或告诉编译器告诉链接器 同一函数的多个相同定义不是错误 如果您想在标头中定义函
  • 单个返回语句与多个返回语句? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • 什么是元数据?它在android中有什么用

    我是 Android 新手 之前没有见过或听说过元数据 然而我用谷歌搜索并在 YouTube 上搜索它 它基本上是你的对象的信息 如果我错了请纠正我 任何人都可以帮助我以更好的方式理解它 1 什么是元数据 2 为什么在Android中使用它
  • jQuery 中是否有 $.each 函数的条件循环

    我有一个关于 jQuery 的疑问 each方法 下面是我的ajax 它运行得很好 ajax url js people json js type post dataType json success function data each
  • 如何使用文本样式创建像 stackoverflow 这样的标签

    我想知道如何在输入字段 例如 stackoverflow 的标记系统 内创建 css 样式 当您单击标签时 文本将被设置样式 而且 当您单击样式标签时 它会再次正常 我想我主要关心的是如何在输入字段内设置文本样式 Thanks 标签不是输入
  • Office 365 Rest API - 守护程序周身份验证

    我正在尝试建立一个Ruby用于访问 Office 365 Rest API 的守护程序服务 最近可以通过 OAuth client credentials 流程来做到这一点 如本博客文章所述 https learn microsoft co
  • 为没有 ZeroMQ 绑定的语言创建 IPython 的语言内核

    有some http andrew gibiansky com blog ipython ipython kernels 有趣的描述 https stackoverflow com questions 22782028 ipython la
  • OpenGL ES 2.0 中许多具有不同纹理的对象

    我是 OpenGL ES 2 0 的新手 它具有可编程管道 并且我正在移植使用不同纹理渲染许多对象的应用程序 那么这将需要为每个对象调用 glDrawArrays 并在调用之间更改纹理 或者还有另一种方法可以通过单个 glDrawArray
  • 沿着一列将 DataFrame 从长到宽重塑

    我正在寻找一种将下面的表 A 显示重新配置为表 B 的方法 Table A type x1 x2 x3 A 4 6 9 A 7 4 1 A 9 6 2 B 1 3 8 B 2 7 9 转化为表B type x1 x2 x3 x1 x2 x3
  • UTF-8 与 UTF-16 和 UTF-32 转换混淆

    我对将 unicode 字符转换为十六进制值感到有点困惑 我正在使用这个网站来获取字符的十六进制值 https www branah com unicode converter https www branah com unicode co
  • 如何授予自己对本地 SQL Server 实例的管理员访问权限?

    我将 SQL Server 2008 R2 安装到本地计算机上 但是 由于权限 或缺乏 我无法创建新数据库 创建数据库权限被拒绝 因此 我尝试将管理员权限分配给我当前的登录名 用户无权执行此操作 我还尝试创建一个具有管理员权限的新登录名 但
  • 在 macOS Mojave 上的 Mac App Store 中打开开发者页面

    新的 Mac App Store 提供了一个开发者页面 我想从我的应用程序中链接到此页面 怎么能做到这一点呢 我知道我可以打开单个应用程序 Mac App Store 甚至显示了 复制链接 选项 但开发人员页面没有此选项 这可能吗 我终于弄
  • Axios post 为对象添加额外的键

    我尝试用 axios 发布一个对象 我需要它的格式如下 var dataObj username username password password data1 data1 当我在后端使用 axios 和 catch 发布它时 它会向对象
  • 计算向量中每 n 个值的平均值

    假设我有一个向量 a lt rnorm 6000 我想计算第 1 个值到第 60 个值的平均值 然后再次计算第 61 个值到第 120 个值的平均值 依此类推第四个值 所以基本上我想计算每 60 个值的平均值 从而从该向量中得到 100 个
  • 在编辑器中保存然后刷新浏览器快捷方式命令

    我想要一个热键来在 Notepad 中保存全部 然后切换到浏览器并刷新页面 我每天必须这样做数千次 并执行 全部保存 热键 然后按 Alt Tab 到右侧窗口 然后按 F5 一次又一次地刷新 一定有更好的解决方案吗 如果有其他编辑器可以做到
  • Python将音频添加到视频opencv

    我使用 python cv2 模块将 jpg 帧加入视频中 但无法向其中添加音频 是否可以在没有 ffmpeg 的情况下在 python 中向视频添加音频 附 抱歉我的英语不好 使用ffpyplayer来处理音频部分 import cv2
  • Java 泛型的转换很奇怪[重复]

    这个问题在这里已经有答案了 我正在使用java 8 我最近遇到了这个 public class Test public static void main String args String ss Test
  • 如何修复或纠正 IntelliJ Idea 中的“默认文件模板”警告

    IntelliJ理念 2016 1 Windows 10 专业版 当我在新项目中创建新项目或新类时 IntelliJ 会帮助包含一个包含我的姓名和日期的默认标头 但是 它还会突出显示代码并显示有关使用 默认文件模板 的文件的警告 它建议了两
  • 如何禁用“href”属性的默认 行为?

    我有一个像这样的简单侧边栏 div class sidebar ul class nav li class Page1 a href Page1 html Page1 a li li class Page2 a href Page2 htm
  • 如何列出迄今为止正在使用或创建的所有 Hive 数据库?

    如同SHOW TABLES命令 我们是否有这样的命令来列出迄今为止创建的所有数据库 这一页 https cwiki apache org confluence display Hive LanguageManual DDL提到命令SHOW
  • Django 中的 GraphQL 查询返回 None

    我正在尝试在 django 中使用 graphQL 查询 基本上我有两个应用程序 一个是我的 api 应用程序 其中包含进行查询所需的所有内容 另一个是 前端 应用程序 我从中调用 api 来使用这些查询 我可以使用 GraphQL 视图在
  • 用于大型数组的 php in_array 的替代方案,以避免重复条目

    我需要生成一个从 600k 到 2000k 的大量随机数列表 但是 列表不能有重复项 我当前的 实现 如下所示