相关疑难解决方法(0)

Java:Can(new Random()).nextInt(5)总是返回相同的数字?

有时这段代码总是返回相同的数字(有时它工作正常):

(new Random()).nextInt(5)
Run Code Online (Sandbox Code Playgroud)

我怀疑问题在哪里 - 它可能总是创建一个具有相同种子的新Random.那么什么是最好的解决方案:

  • 为Random()创建一个静态var并改为使用它.
  • 使用Math.random()*5(看起来它在内部使用静态var)

或者是其他东西?我不需要任何看似随意的东西.

如果有人能够解释为什么原始代码有时会起作用而有时却不能解释,那将会很有帮助.

谢谢.

java random

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

C#随机代码 - 大部分都是错误的吗?

随机化列表我遇到了很多问题.我在谈论一个包含200个元素的列表,我希望将其列入清单.不要误会我的意思,我读了很多例子,乍一看有很好的东西,比如:

随机化List <T>

但根据我的经验,至少在快速机器上,这基本上是毫无价值的.改组运行得如此之快,以至于两次调用Random.NEXT()之间没有MS延迟,导致几乎不随机的行为.

我不是在谈论超级安全的东西,只是随机的基本游戏.我知道我可以添加1 MS的延迟,但这意味着"浪费"200 MS只是随机化一个列表.

现在我找到了这种方法:http://www.codinghorror.com/blog/2007/12/shuffling.html

看起来不错,使用GUID进行排序.但他们不是以同样的方式创造的吗?让我们提高一个档次,让我们假设我要创建1000个数字,介于0 - 5之间.这段代码基本没用:

        var resultA = new List<int>();
        for (int i = 0; i < 1000; i++)
        {
            resultA.Add(new Random().Next(5));
        }


        var resultB = new List<int>();
        for (int i = 0; i < 1000; i++)
        {
            resultB.Add(new Random().Next(5));
            Thread.Sleep(1);
        }
Run Code Online (Sandbox Code Playgroud)

A根本不起作用,至少不是我在Windows Phone 7中的环境.B很好,但它需要一秒钟,这也是愚蠢的.任何评论或想法,创建随机的整数列表都不是那么难:-)

c# random windows-phone-7

4
推荐指数
2
解决办法
2176
查看次数

如何从数组创建一个随机数

我在做C#编码.在我的编码中,我需要生成一个随机的数字列表.通常,如果我们创建一个随机数,我们需要选择数字的范围.但是对于我的情况,我需要从数组中创建一个随机数.任何的想法?我正在使用XAML和C#.

private void Submit_Click(object sender, RoutedEventArgs e)
    {         
        int[] numbers = new int[5] {32, 67, 88, 13, 50};
        Random rd = new Random();
        //int myNo = rd.Next(numbers[])?                    
    }
Run Code Online (Sandbox Code Playgroud)

额外:每次单击提交按钮,将选择随机数字[].我怎样才能确保不重复这个数字.例如:第一次点击,myNo = 67; 第二次点击,myNo = 50; 第3次点击,myNo = 88; 第4次点击,myNo = 32; 第5次点击,myNo = 13.谢谢!

c# random

4
推荐指数
1
解决办法
2万
查看次数

C# - 带种子的随机数

我有这个代码:

var rand = new Random(0);
for(int i = 0; i < 100; i++)
{
  Console.WriteLine(rand.Next(0, 100));
}
Run Code Online (Sandbox Code Playgroud)

程序应该给我100倍相同的数字(因为种子是相同的),但它给出了不同的数字......
为什么?

编辑:
我什么时候做

for(int i = 0; i < 100; i++)
{
  Console.WriteLine(new Random(0).Next);
}
Run Code Online (Sandbox Code Playgroud)

每次返回相同的数字.那意味着种子正在改变?如果有,怎么样?它在增加吗?

c# random random-seed

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

C#事件的实现

我正在学习关于类的C#事件实现.

我有例子:

Car class继承了Sport和City课程.Car class具有由Sport和City类继承的基本方法调用OnBuy.在OnBuy方法中,事件处理程序已分配给Event Buy.

还有一个名为LicenseService的服务或类,每次购买时都会生成许可证号.

在这种情况下,我实现了事件驱动编程.这是我的git示例:

https://github.com/adityosnrost/CSharpLearningEvent

问题:

  1. 这是在C#上使用Event的正确方法吗?

  2. 如果这是正确的.我可以将OnBuy方法覆盖到每个孩子身上吗?如果覆盖可用,我该怎么办?

  3. 我可以做些什么来使这个样本更好?

谢谢

class Program
{
    static void Main(string[] args)
    {
        Car car = new Car();
        Sport sport = new Sport();
        City city = new City();

        //car.Name();
        //sport.Name();
        //city.Name();

        //Console.ReadLine();

        LicenseService ls = new LicenseService();

        city.Buy += ls.GenerateLicense;

        city.OnBuy();

        Console.ReadLine();
    }
}

internal class Car
{
    internal virtual void Name()
    {
        Console.WriteLine("Car");
    }

    internal event EventHandler Buy;

    internal virtual void OnBuy()
    {
        EventHandler handler = Buy;
        if (null != …
Run Code Online (Sandbox Code Playgroud)

c# events class

4
推荐指数
1
解决办法
513
查看次数

为什么我的随机数生成器为两个数组播种相同的数字?

我正在使用一种方法来创建两个int具有随机数的新数组,但这两个数组包含完全相同的数字.为什么会这样?

    static void Main(string[] args)
    {
        int[] Foo1= Foo(1000);
        int[] Foo2= Foo(1000);
    }
    static int[] Foo(int length)
    {
        int[] Array = new int[length];
        Random r = new Random();
        for (int i = 0; i < length; i++)
        {          
            Array[i]=r.Next(1, 101);   
        }
        //Thread.Sleep(6);
        return Array;
    }
Run Code Online (Sandbox Code Playgroud)

.net c# random

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

C#中的随机数

可能重复:
随机数生成器不按我计划的方式工作(C#)

我创建了一个方法,返回一个随机数:

public static int SelectRandomMachine(int max)
{
int seed = (int)DateTime.Now.Ticks;
Random rndNumber = new Random(seed);
int randMachine = rndNumber.Next(0, max);
return randMachine;
}
Run Code Online (Sandbox Code Playgroud)

如果我两次调用该方法,目前它返回相同的随机数:

randM1 = SelectRandomMachine(maxNumber);
randM2 = SelectRandomMachine(maxNumber);
Run Code Online (Sandbox Code Playgroud)

任何建议都将受到高度赞赏.

c# random

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

标签文本值未设置

我有8个标签.我希望每个标签的text属性设置为随机数.由于某种原因,只有第一个标签有一个数字集,为什么会这样?(另外,虽然没有直接相关,如果有更好的方法做label1.Text,label2.Text,label3.Text等,请告诉我!)

谢谢

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        go();
    }

    void go()
    {
        int[] numbers = new int[8];

        foreach (int number in numbers) 
        {
            numbers[number] = getRandomNumber();
        }

        label1.Text = numbers[0].ToString();
        label2.Text = numbers[1].ToString();
        label3.Text = numbers[2].ToString();
        label4.Text = numbers[3].ToString();
        label5.Text = numbers[4].ToString();
        label6.Text = numbers[5].ToString();
        label7.Text = numbers[6].ToString();
        label8.Text = numbers[7].ToString();
    }

    int getRandomNumber()
    {
        Random random = new Random();
        return random.Next(10, 1000);
    }
}
Run Code Online (Sandbox Code Playgroud)

c#

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

for循环中的C#数组产生相同的随机整数值

这是我第一次发帖.希望这个问题不会太混乱.我正在为一个初学者C#书的实验室工作,现在卡住了.我正在创建一个"狗赛跑模拟器"计划.当我点击"开始比赛"按钮,狗,直到他们到达终点移动到与定时器的每个替权利,在1到30之间的随机整数.我试着开关了代码一吨的不同的方式,阅读阵列,Random类,以及环网上,但出于某种原因,不管是什么,狗总是以同样的速度移动.它们需要以不同的随机速率随每个刻度移动.

解决方案会很好,但我真的想知道,为什么我的代码不起作用?不应该为每只狗分配一个不同的随机数,因为它循环通过数组的'i'值?

图片可以在这里找到:http: //makingspidersense.com/dograce.png

这是Form1代码:

Greyhound[] dogs = new Greyhound[4];

    private void startRaceButton_Click(object sender, EventArgs e)
    {
        timer1.Start();
        dogs[0] = new Greyhound() { MyPictureBox = dog1PictureBox };
        dogs[1] = new Greyhound() { MyPictureBox = dog2PictureBox };
        dogs[2] = new Greyhound() { MyPictureBox = dog3PictureBox };
        dogs[3] = new Greyhound() { MyPictureBox = dog4PictureBox };
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        for (int i = 0; i < 4 ; i++)
        {
            if (dogs[i] != null) …
Run Code Online (Sandbox Code Playgroud)

c# arrays random loops for-loop

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

Python函数默认参数随机值

在下面的代码中,按照预期生成了一个随机值:

import random

for i in range(10):
    print(random.randint(0,10))
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用函数,这将不起作用:

import random

def f(val: int = random.randint(0,10)):
    print(val)

for i in range(10):
    f()
Run Code Online (Sandbox Code Playgroud)

为什么第二个代码片段的结果总是相同的数字?我能找到的最相似的问题是这个,但它指的是一种不同的语言(我不掌握)。

python random function

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

标签 统计

c# ×8

random ×8

.net ×1

arrays ×1

class ×1

events ×1

for-loop ×1

function ×1

java ×1

loops ×1

python ×1

random-seed ×1

windows-phone-7 ×1