C# Random 类的问题

2024-05-08

我有一个代表一枚硬币的类,可以使用 Coin.Flip() 方法翻转它。 Flip() 使用 random.Next(2);得到代表正面或反面的 0 或 1。这很好用……有点。

对于该程序,我需要有 2 个我制作的硬币,比如说 coin1 和 coin2。

coin2 总是需要在 coin1 之后直接翻转,我可以这样做:

coin1.Flip();
coin2.Flip();

那应该有效,对吧?

嗯,事实并非如此!每次我运行这两行代码时,两枚硬币最终都会获得相同的值!

面值存储在Coin类内部的face中,其定义如下:

private int face;

我不认为我所做的有任何问题,但每次运行代码时,它们最终都是相同的。

哦,另外,随机也是在 Coin 类中定义的,如下所示:

private Random random = new Random();

感谢您的帮助!

编辑:这是 Flip(),它现在可以工作,但随机是静态的。

    public void Flip() {
        face = random.Next(2);
    }

随机数生成器需要种子值。具有相同种子的 RNG 将产生相同的随机数流。

默认情况下,System.Random 使用当前时间作为种子。如果您几乎立即创建两个实例,它们可能都具有相同的时间值,因此将产生相同的随机数序列。

您可以将 Random 移动到静态成员,以便所有 Coin 共享相同的 RNG,但请注意 System.Random 没有记录为线程安全的,因此您不能在没有同步的情况下在不同线程上使用多个 Coin。

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

C# Random 类的问题 的相关文章

  • Qt - QProcess 不工作

    我尝试启动 Internet Explorer 所以我使用下面的代码 QProcess process new QProcess this QString temp C Program Files Internet Explorer iex
  • C# 方法重载决策不选择具体的泛型覆盖

    这个完整的 C 程序说明了这个问题 public abstract class Executor
  • 使用 CMake 时如何导出 Emscripten 中的 C 函数

    In 本教程 https emscripten org docs porting connecting cpp and javascript Interacting with code html interacting with code
  • Grpc - 将消息从一个客户端发送到连接到同一服务器的另一个客户端

    是否可以将消息从一个客户端发送到连接到同一服务器的另一个客户端 我想将数据从一个客户端发送到服务器然后发送到特定客户端 我想我需要获取客户端 ID 但我不知道如何获取此 ID 以及如何从服务器将此消息发送到该客户端 我这里有一个样本 这是一
  • Environment.CurrentDirectory 与 System.IO.Directory.GetCurrentDirectory

    我正在编写一个 Net WinForms 并不断在调试和发布配置之间切换 并且有一些文件我需要任一配置才能访问 我想做的是将文件放在 BIN 文件夹中的公共目录中 这样它看起来像这样 MyProject Bin CommonFiles My
  • 未找到 Boost 库,但编译正常

    我正在尝试在 C 中使用 boost 的文件系统 使用时看起来编译没问题 c c Analyse c o Analyse o g W Wall L usr local lib lboost filesystem lboost system
  • 从复选框列表中选择循环生成的复选框中的一个复选框

    抱歉我的英语不好 在我的 ASP NET 网站上 我从 SQL 表导入软件列表 看起来像这样 但实际上要长得多 Microsoft Application Error Reporting br br Microsoft Applicatio
  • RestSharp获取序列化输出

    我正在寻找一种方法来访问 AddBody 调用的序列化结果 我正在使用内置的 RestSharp 序列化器 例子 class Foo public string FooField void SendRecord var f new Foo
  • 在 C# 中,如何根据在 gridview 行中单击的按钮引用特定产品记录

    我有一个显示产品网格视图的页面 该表内有一列 其中有一个名为 详细信息 的超链接 我想这样做 以便如果用户单击该特定产品的详细信息单元格 将打开一个新页面 提供有关该产品的更多信息 我不确定如何确定哪个Product记录链接的详细信息以及我
  • Eigen 和 OpenMP:由于错误共享和线程开销而没有并行化

    系统规格 Intel Xeon E7 v3 处理器 4 插槽 16 核 插槽 2 线程 核心 Eigen 系列和 C 的使用 以下是代码片段的串行实现 Eigen VectorXd get Row const int j const int
  • 什么是空终止字符串?

    它与什么不同标准 字符串 http www cplusplus com reference string string 字符串 实际上只是一个数组chars 空终止字符串是指其中包含空字符的字符串 0 标记字符串的结尾 不一定是数组的结尾
  • C++中判断unicode字符是全角还是半角

    我正在编写一个终端 控制台 应用程序 该应用程序应该包装任意 unicode 文本 终端通常使用等宽 固定宽度 字体 因此要换行文本 只需计算字符数并观察单词是否适合一行并采取相应的操作 问题是 Unicode 表中的全角字符在终端中占用了
  • 已发布的 .Net Core 应用程序警告安装 .Net Core,但它已安装

    我制作了一个 WPF 和控制台应用程序 供某人在我无法访问的私人服务器上使用 我使用 Visual Studio 2019 的内置 发布向导 来创建依赖于框架的单文件应用程序 当该人打开 WPF 应用程序时 他们会看到标准警告 他们单击 是
  • 不可变类与结构

    以下是类与 C 中的结构的唯一区别 如果我错了 请纠正我 类变量是引用 而结构变量是值 因此在赋值和参数传递中复制结构的整个值 类变量是存储在堆栈上的指针 指向堆上的内存 而结构变量作为值存储在堆上 假设我有一个不可变的结构 该结构的字段一
  • 将函数参数类型提取为参数包

    这是一个后续问题 解包 元组以调用匹配的函数指针 https stackoverflow com questions 7858817 unpacking a tuple to call a matching function pointer
  • 模板类中的无效数据类型生成编译时错误?

    我正在使用 C 创建一个字符串类 我希望该类仅接受数据类型 char 和 wchar t 并且我希望编译器在编译时使用 error 捕获任何无效数据类型 我不喜欢使用assert 我怎样才能做到这一点 您可以使用静态断言 促进提供一个 ht
  • 使动态创建的链接标签在 Winforms 中可点击

    我正在制作一个程序 允许用户单击由动态链接标签创建的公司名称 在我想知道如何做到这一点之前 我从未在 C 中使用过链接标签 可为特定用户生成的业务数量各不相同 因此每个用户的链接标签数量并不相同 然后我想捕获业务 ID 以进行 Json 调
  • 如何解压 msgpack 文件?

    我正在将 msgpack 编码的数据写入文件 在编写时 我只是使用 C API 的 fbuffer 如 我为示例删除了所有错误处理 FILE fp fopen filename ab msgpack packer pk msgpack pa
  • 代码中的.net Access Forms身份验证“超时”值

    我正在向我的应用程序添加注销过期警报 并希望从我的代码访问我的 web config 表单身份验证 超时 值 我有什么办法可以做到这一点吗 我认为您可以从 FormsAuthentication 静态类方法中读取它 这比直接读取 web c
  • 如何在 sql azure 上运行 aspnet_regsql? [复制]

    这个问题在这里已经有答案了 可能的重复 将 ASP NET 成员资格数据库迁移到 SQL Azure https stackoverflow com questions 10140774 migrating asp net membersh

随机推荐

  • 如何创建自定义 Powershell 运算符?

    是否可以在 Powershell 中创建自定义运算符 而且 我该怎么做呢 我搜索过谷歌 但没有任何结果 我特指一个中缀运算符 示例列表 包含 元素 我已经创建了 cmdlet 使用 Powershell 和 C 模块等 所以我只需要大概的内
  • Python Spark DataFrame:用 SparseVector 替换 null

    在 Spark 中 我有以下名为 df 的数据框 其中包含一些空条目 id features1 features2 185 5 0 1 4 0 1 0 null 220 5 0 2 3 0 1 0 10 1 2 6 0 1 225 null
  • Ruby IMAP IDLE 并发 - 如何解决?

    我正在尝试构建一个 目前是私有的 Web 应用程序 该应用程序将利用 IMAP IDLE 连接在人们到达时显示电子邮件 我很难弄清楚如何将其组合在一起 以及它如何与我的 Heroku RoR 服务器结合在一起 我编写了一个用于连接到 IMA
  • Python UTF-8转换问题

    在我的数据库中 我存储了一些 UTF 8 字符 例如 名称 字段中的 通过 Django ORM 当我读到这个时 我得到了类似的东西 gt gt gt p name u xce xb1 gt gt gt print p name 我本来希望
  • 在解析之前使用 lxml 注册命名空间

    我正在使用 lxml 从具有命名空间的外部服务解析 XML 但未将它们注册到xmlns 我正在尝试手动注册它register namespace 但这似乎不起作用 from lxml import etree xml
  • highchart情节可以有移动动画吗?

    有没有什么方法可以让情节线通过动画移动到新位置 或者我必须使用其他插件吗 我想构建像二元期权或专家期权游戏一样的乐趣 这是我的简单演示 示例演示链接 http jsfiddle net krdh2e73 function Highchart
  • 估算缺失数据,同时强制相关系数保持不变

    考虑以下 excel 数据集 m r 2 0 3 3 0 8 4 0 1 3 2 1 5 2 2 3 1 9 2 5 1 2 3 0 2 0 2 6 我的目标是使用以下条件填充缺失值 将上述两列之间的成对相关性表示为 R 大约 0 68 将
  • Python如何拆分列表列表?

    我有一个清单清单 myList 1 2 3 4 5 6 7 8 9 10 我想将其分成三个单独的列表 每个列表都有自己的名称 a 1 2 3 b 4 5 6 c 7 8 9 10 我该怎么做呢 您可以直接解压它 a b c myList
  • 无法解析类型“Microsoft.AspNetCore.Identity.RoleManager”的服务

    我编写代码以在我的 asp net core 项目中向用户添加角色 这是我的角色控制器 public class RolesController Controller RoleManager
  • 如何编写对 UTF-8 安全的代码?

    我们有一组针对 ASCII 字符集开发的应用程序 现在 我们正尝试在冰岛安装它 但遇到了冰岛字符被搞砸的问题 我们正在解决我们的问题 但我想知道 是否有一个好的 指南 来编写专为 8 位字符设计的 C 代码 并且在提供 UTF 8 数据时可
  • UIWebView 是否在请求标头中发送与移动 Safari 相同的用户代理?

    抱歉 我只想自己测试一下 但我目前没有 Mac UIWebView 内部发出的 Web 请求是否发送与移动 Safari 发出的 Web 请求相同的用户代理信息 从 UIWebView 发出的 Web 请求不会在用户代理字符串中包含单词 S
  • M2crypto签名“算法”

    这两个代码提供了相同的签名 这是预期的 code1 from M2Crypto import RSA EVP import base64 hashlib text some text pkey EVP load key mykey pem
  • 显示视频的缩略图

    大家好 在我的应用程序中 用户将复制 YouTube 的视频链接并将其粘贴到文本框中 一旦他单击添加按钮 我就必须显示视频的缩略图 如何从 YouTube 页面呈现视频缩略图 我在前端使用Jquery和HTML5 获取 YouTube 缩略
  • 如何执行一批相互依赖的 AFNetworking 请求

    我需要执行一系列按顺序运行的服务器调用 并且只有在所有先前的请求都成功的情况下才能执行一个请求 所以 我的想法是创建一个AFHTTPRequestOperation对于每个请求和使用 myAFHTTPClient enqueueBatchO
  • CSS中.container.\31 25\25是什么意思?

    在下面的代码中 我想知道什么 反斜杠可能意味着什么 我在学习的课程中没有遇到过反斜杠字符 我相信这段代码是用来识别浏览器大小的 container 31 25 25 width 100 max width 1500px max width
  • 将选择菜单连接到单个表单输入中

    我有一个文本输入如下
  • FF / Chrome 支持的 XMLHttpRequest.DONE 值存在问题

    我有一段 Javascript 需要调试 var httpRequest new XMLHttpRequest httpRequest onreadystatechange function if this readyState XMLHt
  • 没有列名列表的tsql标识插入

    我要将一些数据从一个数据库转储到另一个数据库 我在用 set identity insert MyTable on GO INSERT INTO MyTable SELECT FROM sourceDB dbo MyTable GO set
  • 用整数矩阵对 data.frame 进行子集化

    我一直遇到这个问题 想知道是否有一个简单的解决方法 对于某些情况 我发现考虑将矩阵子集化更合乎逻辑 N lt 12 N NA lt 6 dat lt data frame V1 runif N V2 runif N sel mat lt m
  • C# Random 类的问题

    我有一个代表一枚硬币的类 可以使用 Coin Flip 方法翻转它 Flip 使用 random Next 2 得到代表正面或反面的 0 或 1 这很好用 有点 对于该程序 我需要有 2 个我制作的硬币 比如说 coin1 和 coin2