标签: random

随机字符串生成器返回相同的字符串

我已经开发了一个随机字符串生成器,但它的行为并不像我希望的那样.我的目标是能够运行两次并生成两个不同的四个字符随机字符串.但是,它只生成一个四字符随机字符串两次.

这是代码和输出的示例:

private string RandomString(int size)
{
    StringBuilder builder = new StringBuilder();
    Random random = new Random();
    char ch;
    for (int i = 0; i < size; i++)
    {
        ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65)));                 
        builder.Append(ch);
    }

    return builder.ToString();
}

// get 1st random string 
string Rand1 = RandomString(4);

// get 2nd random string 
string Rand2 = RandomString(4);

// create full rand string
string docNum = Rand1 + "-" + Rand2;
Run Code Online (Sandbox Code Playgroud)

......输出看起来像这样:UNTE-UNTE ......但看起来应该像UNTE-FWNU

如何确保两个明显随机的字符串?

c# random

222
推荐指数
10
解决办法
29万
查看次数

生成随机密码

当我们网站上的用户丢失密码并前往"忘记密码"页面时,我们需要给他一个新的临时密码.我真的不介意这是多么随机,或者如果它匹配所有"需要的"强密码规则,我想要做的就是给他们一个密码,以便以后更改.

该应用程序是一个用C#编写的Web应用程序.所以我一直在考虑使用Guid的简单方法.即

Guid.NewGuid().ToString("d").Substring(1,8)
Run Code Online (Sandbox Code Playgroud)

Suggesstions?想法?

c# random passwords

219
推荐指数
10
解决办法
20万
查看次数

如何访问列表中的随机项?

我有一个ArrayList,我需要能够单击一个按钮然后从该列表中随机挑出一个字符串并将其显示在消息框中.

我该怎么做呢?

c# arrays string random

217
推荐指数
7
解决办法
24万
查看次数

更好的方法是同时改变两个numpy阵列

我有两个不同形状的numpy数组,但长度相同(领先维度).我想改变它们中的每一个,使得相应的元素继续对应 - 即相对于它们的前导索引一致地混洗它们.

此代码有效,并说明了我的目标:

def shuffle_in_unison(a, b):
    assert len(a) == len(b)
    shuffled_a = numpy.empty(a.shape, dtype=a.dtype)
    shuffled_b = numpy.empty(b.shape, dtype=b.dtype)
    permutation = numpy.random.permutation(len(a))
    for old_index, new_index in enumerate(permutation):
        shuffled_a[new_index] = a[old_index]
        shuffled_b[new_index] = b[old_index]
    return shuffled_a, shuffled_b
Run Code Online (Sandbox Code Playgroud)

例如:

>>> a = numpy.asarray([[1, 1], [2, 2], [3, 3]])
>>> b = numpy.asarray([1, 2, 3])
>>> shuffle_in_unison(a, b)
(array([[2, 2],
       [1, 1],
       [3, 3]]), array([2, 1, 3]))
Run Code Online (Sandbox Code Playgroud)

然而,这种感觉笨重,效率低,而且速度慢,而且需要使阵列的复制 - 我宁愿他们洗牌在原地的,因为他们将是相当大的.

有没有更好的方法来解决这个问题?更快的执行速度和更低的内存使用率是我的主要目标,但优雅的代码也会很好.

我有另外一个想法是:

def shuffle_in_unison_scary(a, b):
    rng_state = numpy.random.get_state()
    numpy.random.shuffle(a)
    numpy.random.set_state(rng_state)
    numpy.random.shuffle(b)
Run Code Online (Sandbox Code Playgroud)

这工作...但它是一个有点吓人,因为我看不出有什么保证它会继续工作 - …

python random numpy shuffle numpy-ndarray

214
推荐指数
11
解决办法
10万
查看次数

在python中获取随机布尔值?

我正在寻找最好的方法(快速和优雅)来获得python中的随机布尔值(翻转硬币).

目前我正在使用random.randint(0, 1)random.getrandbits(1).

有没有更好的选择我不知道?

python random

210
推荐指数
6
解决办法
13万
查看次数

如何在SQL中随机选择行?

我正在使用MSSQL Server 2005.在我的数据库中,我有一个表"customerNames",它有两列"Id"和"Name"和大约.1,000个结果.

我正在创建一个功能,每次我必须随机挑选5个客户.任何人都可以告诉我如何创建一个查询,每次执行查询时将获得随机的5行(Id和Name)?

sql database random

203
推荐指数
9
解决办法
27万
查看次数

java.util.Random和java.security.SecureRandom之间的区别

我的团队交出了一些生成随机令牌的服务器端代码(用Java),我对此有一个问题 -

这些令牌的目的是相当敏感的 - 用于会话ID,密码重置链接等.所以他们确实需要加密随机,以避免有人猜测它们或蛮力强制它们.令牌是"长",所以它是64位长.

代码当前使用java.util.Random该类来生成这些令牌.文档([ http://docs.oracle.com/javase/7/docs/api/java/util/Random.html] [1 ])java.util.Random清楚地说明了以下内容:

java.util.Random的实例不具有加密安全性.相反,请考虑使用SecureRandom来获取加密安全的伪随机数生成器,以供安全敏感应用程序使用.

但是,代码当前使用的方式java.util.Random是 - 它实例化java.security.SecureRandom类,然后使用该SecureRandom.nextLong()方法获取用于实例化java.util.Random类的种子.然后它使用java.util.Random.nextLong()方法生成令牌.

所以我现在的问题 - 鉴于java.util.Random正在使用种子,它仍然是不安全的java.security.SecureRandom吗?我是否需要修改代码以便它java.security.SecureRandom专门用于生成令牌?

目前代码种子是Random启动时的一次

java security random cryptography

200
推荐指数
3
解决办法
8万
查看次数

java.util.Random真的是随机的吗?我怎么能产生52!(阶乘)可能的序列?

我一直Random (java.util.Random)用来洗牌一副52张牌.有52个!(8.0658175e + 67)可能性.然而,我发现种子java.util.Random是a long,它在2 ^ 64(1.8446744e + 19)处小得多.

从这里开始,我怀疑是否java.util.Random 真的那么随意 ; 它实际上能够生成所有52!可能性?

如果没有,我怎样才能可靠地生成一个更好的随机序列,可以产生所有52个!可能性?

java random permutation random-seed java.util.random

200
推荐指数
6
解决办法
9925
查看次数

在圆内生成随机点(均匀)

我需要在半径为R的圆内生成一个均匀的随机点.

我意识到,通过在区间[0 ...2π)中选择一个均匀的随机角度,并且在区间(0 ... R)中均匀随机半径,我会得到更多的点朝向中心,因为两个给定半径,较小半径中的点将比较大半径中的点更接近彼此.

在这里发现了一篇关于此的博客文章,但我不理解他的推理.我想它是正确的,但我真的想从他得到的地方(2/R 2r以及他如何得出最终解决方案中理解.


更新:发布此问题7年后,我仍然没有收到有关平方根算法背后数学的实际问题的满意答案.所以我花了一天时间自己写答案.链接到我的答案.

random math geometry probability

194
推荐指数
10
解决办法
12万
查看次数

生成范围内的'n'个唯一随机数

我知道如何在Python中生成一个范围内的随机数.

random.randint(numLow, numHigh)
Run Code Online (Sandbox Code Playgroud)

而且我知道我可以把它放在循环中以生成n个这些数字

for x in range (0, n):
    listOfNumbers.append(random.randint(numLow, numHigh))
Run Code Online (Sandbox Code Playgroud)

但是,我需要确保该列表中的每个数字都是唯一的.除了一系列条件语句之外,还有一种生成n个唯一随机数的直接方法吗?

编辑:重要的是列表中的每个数字都与其他数字不同.

所以

[12,5,6,1] =好

[12,5,5,1] =不好,因为数字5出现两次.

python random unique

194
推荐指数
4
解决办法
32万
查看次数