相关疑难解决方法(0)

在JavaScript中生成两个数字之间的随机数

有没有办法在JavaScript中生成指定范围内的随机数(例如1到6:1,2,3,4,5或6)?

javascript random

1635
推荐指数
22
解决办法
132万
查看次数

在Go中生成一个范围内的随机数

math/rand生成非负数的所有整数函数.

rand.Int() int              // [0, MaxInt]
rand.Int31() int32          // [0, MaxInt32]
rand.Int31n(n int32) int32  // [0, n)
rand.Int63() int64          // [0, MaxInt64]
rand.Int63n(n int64) int64  // [0, n)
rand.Intn(n int) int        // [0, n)
Run Code Online (Sandbox Code Playgroud)

我想生成[-m,n]范围内的随机数.换句话说,我想生成正数和负数的混合.

random go

20
推荐指数
3
解决办法
1万
查看次数

在Google Protocol Buffers中使用int32而不是sint32是不是很好?

我最近一直在阅读Google Protocol Buffers,它允许在消息中使用各种标量值类型.

根据他们的文档,有三种类型的可变长度整数原语- int32,uint32sint32.在他们的文档中,他们指出int32"编码负数的效率低 - 如果您的字段可能有负值,请sint32改用." 但是如果你有一个没有负数的字段,我认为uint32将是一个比使用更好的类型int32(由于额外的位和处理负数的CPU成本降低).

那么什么时候int32使用是一个很好的标量?文档是否意味着只有当您很少得到负数时它才是最有效的?或者它总是优先使用,sint32uint32取决于该领域的内容?

(同样的问题也适用于这些标量的64位版本,以及:int64,uint64,和sint64,但我离开他们出了问题描述为可读性的缘故.)

primitive protocol-buffers

19
推荐指数
2
解决办法
7763
查看次数

"epsilon"真的能保证浮点计算中的任何东西吗?

为了简化问题,我想说我想a / (b - c)floats 上计算表达式.

为了确保结果是有意义的,我可以检查bc是相等的:

float EPS = std::numeric_limits<float>::epsilon();
if ((b - c) > EPS || (c - b) > EPS)
{
    return a / (b - c);
}
Run Code Online (Sandbox Code Playgroud)

但是我的测试表明,如果可能的话,不能保证有意义的结果,也不能不提供结果.

情况1:

a = 1.0f;
b = 0.00000003f;
c = 0.00000002f;
Run Code Online (Sandbox Code Playgroud)

结果:不满足if条件,但表达式将生成正确的结果100000008(与浮点数的精度相同).

案例2:

a = 1e33f;
b = 0.000003;
c = 0.000002;
Run Code Online (Sandbox Code Playgroud)

结果:满足if条件,但表达式不会产生有意义的结果+1.#INF00.

我发现检查结果更可靠,而不是参数:

const float INF = numeric_limits<float>::infinity();
float x = a / (b - c); …
Run Code Online (Sandbox Code Playgroud)

floating-point floating-accuracy epsilon

17
推荐指数
1
解决办法
9372
查看次数

Python数据结构索引从1开始而不是0?

我有一个奇怪的问题:我有64个数字的列表永远不会改变:

(2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128)
Run Code Online (Sandbox Code Playgroud)

我需要一个Python数据结构,这将允许我使用1-64索引而不是标准0-63来获取这些数字.这可能吗?完成此任务的最佳方法是建立字典吗?

python data-structures

10
推荐指数
2
解决办法
5万
查看次数

如何解释C11标准第6.3.1.4节第1段(关于将float转换为unsigned int)

我的C11标准来自这里。这一段说:

\n
\n

当实浮点类型的有限值转换为_Bool以外的整数类型时,小数部分将被丢弃(即该值被截断为零)。如果整数部分的值不能用整数类型表示,则行为未定义。[61]

\n
\n

脚注 61 说:

\n
\n

当实浮点类型的值转换为无符号类型时,不需要执行整数类型的值转换为无符号类型时执行的余数运算。因此,可移植实浮点值的范围为(\xe2\x88\x921, U type _MAX +1)

\n
\n

我的困惑主要是关于unsigned int. 我目前的理解如下:

\n
float    a = 3.14;\nuint32_t b = (uint32_t)a; // defined, b == 3\n\nfloat    a = -1.23;\nuint32_t b = (uint32_t)a; // UB!\n\nfloat a = 2147483646.0;   // defined\nuint32_t b = (uint32_t)a; // defined, b == 2147483646\nuint8_t  c = (uint8_t )a;  // UB!\n
Run Code Online (Sandbox Code Playgroud)\n

它是否正确?

\n

c undefined-behavior language-lawyer

5
推荐指数
1
解决办法
169
查看次数

如何使用window.crypto.getRandomValues获取特定范围内的随机值

我们一直在使用Math.random获取4000-64000之间的随机数:

Math.floor(Math.random() * 60000 + 4000);
Run Code Online (Sandbox Code Playgroud)

我们现在必须使用更加加密的安全随机数生成器来替换它.在搜索了这个问题之后,我们决定使用window.crypto.getRandomValues.我无法弄清楚如何使用它来获得特定范围之间的随机数.有人可以帮忙吗?

javascript java random

3
推荐指数
2
解决办法
2279
查看次数

你如何使清单具有包容性?

我想创建一个从 1 到 52 的列表。(例如一副纸牌)我只是想知道你如何制作一个包容性的清单?

我知道如何列出清单,只是不确定如何使其具有包容性。我在这里搜索了一段时间,并没有真正找到任何有用的东西。

python list python-3.x

-2
推荐指数
1
解决办法
8747
查看次数