通过 Random.Next() 排序

2023-12-15

In 这个问题其中一个建议是通过 Random.Next() 对列表进行排序。

我认为(也许是错误的)他是在建议这个

    public static IEnumerable<T> RandomSort<T>(this IEnumerable<T> items)
    {
        Random r = new Random();
        var a = items.ToArray();
        Array.Sort(a, (t1, t2) => (r.Next()%2==0)?-1 : 1);
        return a;
    }

(是的,已经有一个 Array.RandomShuffle 函数,您显然会使用它。这不是问题)

编辑:发帖人已经澄清了答案。他建议使用 OrderBy 子句

问题是,上面的代码(使用 Array.Sort())运行安全吗?

我的问题是,它将违反谓词排序的基本法则:

如果 (a

它甚至不能保证下次你问时 if (a

这会让你进入“未定义行为”领域吗?

例如,它可能会崩溃或陷入无限循环,具体取决于 Random() 返回的数字序列?


这是创建列表随机排列的有用工具。对于给定的排列,如果a是在之前b and b是在之前c then a是在之前c.

另一种思考方式是这样的:如果您每次使用相同的种子播种随机数生成器,那么它将始终产生相同的顺序。因此,您可以将随机数生成器的每个种子视为生成(可能)不同的列表顺序。

它甚至不能保证下次你问时 if (a

没关系。但如上所述,如果我们使用相同的种子为随机数生成器提供种子并将其呈现给Array.Sort正如在相同状态下的示例代码中一样,它将产生相同的排序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 Random.Next() 排序 的相关文章

随机推荐

  • 从分层 JSON 中挑选出简单属性

    尽管其他用户对我的标题进行了编辑 但我正在寻找一种使用 C 中的 JSON NET 库的解决方案 包含伪代码的回复就可以了 我正在尝试使用 JSON 数据集提供的分层数据 我正在使用 C 和 JSON NET 如果有帮助的话 我愿意一般 使
  • HTTP 页面正在删除我的安全 cookie

    我有一个混合 HTTP HTTPS 的网站 当用户登录时 她会收到两个 cookie 包含她 签名 用户名 登录过期时间和 不安全 标志的常规 cookie a secure cookie with her signed username
  • 使用 Python 和 Beautiful Soup 4 抓取 Twitter 时专注于特定结果?

    这是我的帖子的后续内容使用 Python 抓取 Twitter 中的嵌套 Div 和 Spans 我没有使用 Twitter API 因为它不会通过以下方式查看推文 话题标签这么远 完整的代码和输出如下示例所示 我想从每条推文中抓取特定数据
  • Jmeter 在每次 http 请求后清除 cookie

    在jmeter上下文中 有没有办法在同一线程组内的每个http请求之后清除cookie 在这种情况下 为什么您需要 HTTP Cookie 管理器 只需将其删除 您就会得到预期的行为 以防万一您遇到某种形式的奇怪的负面测试场景 Add a
  • 啊?添加 SDK 1.6 后 Android 首选项页面拒绝加载

    这个实在是太奇怪了 我有一个完美运行的 Eclipse Android 2 2 SDKboth管理员帐户andWindows XP 下的 LUA 有限用户帐户 然后我决定添加 Android 1 6 SDK 我只能通过管理员帐户来完成 看起
  • 如何将另一个站点的所有产品导入到magento站点

    嗨 任何人都可以帮助我吗 我已经在实时服务器上安装了magento 现在我想导入已准备好实时运行的网站的所有产品和类别 我该怎么做 请提供帮助 请参阅 Magento 维基 如何使用导入 导出工具添加 编辑 删除产品 Magento 比较特
  • 重载 Haskell 中的内置函数

    在 Haskell 中 如何重载内置函数 例如 我最初是想弄清楚如何重载内置函数 通过自己的数据类型来支持 具体来说 属于以下类型 a gt Int gt a 我想保留它的现有功能 但也能够在其类型签名看起来更像的地方调用它 MyType1
  • 关于 C# 使用 foreach 循环添加对象到列表

    foreach string f in fileName if list Where p gt p FileName Trim Equals f Trim StringComparison OrdinalIgnoreCase Count 0
  • 为什么我无法在标准机器学习中比较实数?

    为什么不1 0 2 0工作 不是real平等类型 它给出了错误 Error operator and operand don t agree equality type required operator domain Z Z operan
  • iPhone 中的 mailto 链接添加加号而不是空格

    我现在正在构建一个网络应用程序 需要使用 mailto 链接作为 告诉朋友 部分 消息正文对于 URL 来说太长 因此我将其置于隐藏表单中 并通过 jQuery 发送该表单 一切都工作得很好 除了在空格应该去的地方添加了 号 我尝试过取消转
  • 如何在 MS Access 查询中设置日期格式以防止美国/英国问题

    在访问查询中过滤日期时 如何确保选择正确数量的记录 SELECT ID REF SalesDate DCount ID tblRecords Ref Ref AND SalesDate format SalesDate yyyy mm dd
  • 通过引用传递 IDisposable 对象会导致错误?

    我正在尝试创建一个通用方法来处理实现的对象I一次性 称为DisposeObject 为了确保我正在处理原始引用指向的对象 我尝试通过引用传递对象 但我收到一个编译错误 上面写着 ref 参数类型与参数类型不匹配 在下面的 简化的 代码中 两
  • SharePoint 2010 / IIS 7.5 字节范围请求响应整个文件

    我在让 SharePoint 2010 IIS 7 5 尊重字节范围请求时遇到问题 我正在使用 Silverlight 开发 SharePoint 2010 Web 部件 并尝试检索存储在 SharePoint 中的部分文档 当我在 Sha
  • jquery UI 可通过表格和 tr 宽度进行排序

    我正在使用 jQuery UI sortable 来使我的表格网格可排序 该代码似乎工作正常 但因为我没有添加宽度tds 当我拖动tr它缩小了内容 例如 如果我的表格行是 500 像素 当我开始拖动时 它会变成 300 像素 我认为发生这种
  • 如何在鼠标悬停时暂停 Bootstrap 轮播并在鼠标移开时恢复它?

    我的网站上有一个 Bootstrap 轮播 当用户将鼠标悬停在某个元素上时 formcontainer 我想暂停轮播 当我悬停时 我想继续旋转木马的循环 第一部分可以与以下代码配合使用 但第二部分则不行 有人可以帮忙吗 document r
  • 您的内容必须有一个 id 属性为“android.R.id.list”的 ListView

    我创建了一个像这样的 xml 文件
  • Python 列表字典中的最小值

    抱歉 问题重新发布了 我应该首先编辑这个问题 为模组标记了新的 抱歉 添麻烦了 由于要求发生变化 不得不重新编写问题 我有一本字典 如下所示 d a 4 2 b 3 4 c 4 3 d 4 3 e 4 f 4 g 4 我想获取与字典 d 中
  • 在另一个视图中更新核心数据实体后,SwiftUI 列表视图未更新

    我有一个存储在核心数据中的课程实体 其变量之一是存储课程是否完成 这些课程列在 SwiftUI 列表中 选择后会转到游戏所在的视图 游戏完成后 complete 变量将更新为 true 应该发生的情况是列表视图显示列出的游戏 并在游戏旁边显
  • 无法在centOS中运行sshpass命令[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 正在研究 CentOS 6 3 最终版 系统 并尝试使用 ssh 另一台机器sshpass实用程序喜欢 sshpass p password ssh user host 但它给了我这
  • 通过 Random.Next() 排序

    In 这个问题其中一个建议是通过 Random Next 对列表进行排序 我认为 也许是错误的 他是在建议这个 public static IEnumerable