((float) rand() / (float)((1 << 31) - 1)) 的含义

2024-02-20

我试图理解一个 C 程序,其中包含一个 .h 文件,其中包含以下行

#define random                  ((float) rand() / (float)((1 << 31) - 1))

C程序还包括<math.h>.

我的猜测是,这只是从区间 [0,1] 上的均匀分布中产生一个随机数;它是否正确?


表面上是的。但它在两个主要方面是错误的:

  1. Use RAND_MAX反而。这就是它的用途。它可能比1 << 31 - 1.

  2. 1 << 31会给你未定义的行为在一个平台上32 bit int或更少,这是非常常见的。不要那样做!

请注意,如果您不想恢复值 1(通常是这种情况),则使用RAND_MAX + 1.0在分母上。这1.0强制以浮点计算:如果您编写,您将面临整数类型溢出的风险RAND_MAX + 1.

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

((float) rand() / (float)((1 << 31) - 1)) 的含义 的相关文章

  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags

随机推荐

  • 查找总和最接近目标的数字组合

    因此 我有浮点数的组合 还有一些目标值 我想看看这些浮点数的任何组合 允许重复 的总和是否可以尽可能接近目标值 现在我从简单开始 我想看看是否可以使用当前的浮点数列表来达到一个目标值 该总和最多可以偏离目标 0 5 我搜索了很多其他代码 但
  • React-native run-ios 找不到 iPhone X 模拟器 | XRPackageModel 9.0.omo

    我首先在 Expo 上启动了我的项目 然后将其退出 现在 我尝试运行命令react native run ios 但它返回此错误 CoreData 注释 无法在路径 Applications Xcode app Contents Appli
  • 如何在 SwiftUI 中将项目与 VStack 内的顶部对齐?

    我刚刚开始使用 swiftui 我面临着 ui 对齐问题 以下代码从图像顶部创建一个空间 VStack alignment leading Image item imageUrl resizable aspectRatio contentM
  • 如何在android中的数组适配器中设置文本颜色

    在我的应用程序中 我创建了一个列表视图并在列表中添加了一些文本 在我的编码部分中 文本被添加为数组适配器以具有复选框 在布局中 我为列表视图指定了白色 因此文本看起来非常暗淡 如何将文本颜色设置为黑色 我已将列表视图放置在布局文件中 并将文
  • 无需解码图像即可获取 JPEG 分辨率

    我试图在不解码文件的情况下获取 JPEG 图像的分辨率 我从互联网上获得了几个样本 但没有一个可以正常工作 似乎是这样因为manyJPEG 文件不是标准文件 但任何图形应用程序 Irfan PSP Firefox 等 都可以打开它们 JPE
  • 将承运人邮寄至 Bigcommerce Shipments API

    当物品通过 FedEx 运送时 我希望最终客户看到 FedEx 追踪号码 如何指明承运商 我是否需要在 Shipping method 字段中输入 FedEx 运输承运商只能在初始 POST 期间设置 而不能在后续 PUT 请求中设置 创建
  • Facebook/Twitter 风格照片网格风格布局[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试实现 facebook 风格的照片网格布局 我为此使用 angularjs 和 bootst
  • 使用 Google App Engine 套接字进行 DNS 查询

    我正在尝试使用 Google App Engine 的新套接字支持来执行一些 DNS 查询 我在用着dnspython http www dnspython org 执行查询 并且代码在 GAE 之外运行良好 代码如下 class DnsQ
  • 调试 IIS 网站时,ASP.NET Core 2 Web 应用程序不会加载用户机密

    注意 这个问题现已解决 请参阅我的Update 3下面为解决方案 我有一个 ASP NET Core 2 Web 应用程序 需要连接到 SQL Server 数据库 根据我的Update 2下面我正在使用 IIS 调试应用程序 我正在加载配
  • 在处理可选字段时,在 gremlin 中使用注入进行长遍历

    我正在构建一个长遍历以在一个查询中添加数百个顶点 我从官方网站上看到 推荐的方法是注入对象列表并在那里添加顶点 http tinkerpop apache org docs current recipes long traversals h
  • CSS 或 SVG 中的波浪

    我正在尝试用以下方法创建柔和的波浪CSS我遇到了一些麻烦 我现在正在使用边界半径来创建波浪 但它看起来更像云 我尝试使用transform translateZ 180deg 但是div然后颜色是颠倒的 Here s what I want
  • Bootstrap Jumbotron 底部的 CSS 箭头

    我正在尝试使用边框创建一个 css 形状来表示下图中的黑色形状 黑色形状将位于 Bootstrap 大屏幕内部 或上方 红色区域是背景图像 我一直在尝试下面的代码 它给了我一个箭头 但不是我需要的形状 也许是两个箭头 任何帮助表示赞赏 ju
  • 如何在meteor.js 中本地化(i18n) moment.js?

    如何告诉在meteor js 应用程序中使用的moment js 使用英语以外的其他语言 moment js 作为 mrt 包安装 在默认英语下运行良好 使用来自 moment js 文档的演示调用http momentjs com doc
  • 使用 NuGet.Core 以编程方式推送 NuGet 包

    我目前正在打包一些文件 并使用命令行工具将它们推送到我们一台服务器上的 NuGet 源 我没有使用命令行工具 而是使用 Nuget Core 设置了一个项目 并成功创建了一个包 我现在尝试通过 NuGet Core 将该包从我的计算机推送到
  • dbReadTable 将日期列从 SQL 数据库强制转换为字符

    我可以将日期写入 SQL 表DBI dbWriteTable 并看到该列实际上在数据库中被格式化为日期 但是当我使用DBI dbReadTable 在 R 中 相同的日期列被强制转换为字符列 如何将 SQL 表读入 R 并保留日期列格式 l
  • Grails 1.3.7 / Java 7 兼容性

    有人幸运地使用 Java 7 运行 Grails 1 3 7 应用程序吗 我创建了一个全新的 Grails 1 3 7 应用程序并尝试在 Java 7 下运行它 我收到以下错误 但该应用程序似乎运行正常 我们有一些 1 3 7 应用程序 我
  • 我是否总是需要考虑性能?

    我来自 DBA 世界 性能一直是我的痴迷 我正在转向开发 并且我总是不断地 无时无刻地思考性能 阅读 SO 有时似乎性能并不重要 例如 对于 hibernate 或任何其他 ORM 的传播者来说 作为一名开发人员 我什么时候必须考虑性能 什
  • 去除android.widget.Toolbar阴影

    使用API 21 Toolbar Toolbar Toolbar toolbar new Toolbar this toolbar showOverflowMenu 想彻底消除它的影子 setElevation 0 从那以后什么也没做get
  • UIRefreshControl背景颜色

    是否可以使 UIRefreshControl 的背景随着控件的增长而增长 我希望刷新控件有一个彩色背景 以匹配顶部单元格的背景颜色 更改表格视图的背景颜色是不可接受的 因为底部的空单元格也会有颜色 但我需要它们保持白色 苹果的邮件应用程序显
  • ((float) rand() / (float)((1 << 31) - 1)) 的含义

    我试图理解一个 C 程序 其中包含一个 h 文件 其中包含以下行 define random float rand float 1 lt lt 31 1 C程序还包括