用另一个数组的值随机分配数组值

Posted

技术标签:

【中文标题】用另一个数组的值随机分配数组值【英文标题】:Randomly assign array value with another array's value 【发布时间】:2019-04-25 15:38:30 【问题描述】:

如何将一组数组值分配给另一个数组的值?两者都有 26 个值。

我正在模拟一个交易或不交易游戏,其中用户从指定列表中选择一个案例。现在,在每次运行控制台应用程序时,我希望每个案例的每个现金奖励都有一个随机分配(为了公平起见)。我的代码如下:

    int[] cashPrizeArray = new int[]  0, 1, 2, 5, 10, 20, 50, 100, 150, 200, 250, 500, 750, 1000, 2000, 3000, 4000, 5000, 10000, 15000, 20000, 25000, 50000, 75000, 100000, 200000 ;
    string[] caseArray = new string[]  "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26" ;

    Console.WriteLine("Deal or Not!");
    Console.Write("Choose a case: 1-26: ");
    string userCase = Console.ReadLine();



    if (!caseArray.Contains(userCase))
    
        Console.WriteLine("\nUnexpected input text.\nThis application will now be terminated.\nPress ENTER to continue...");
        Console.ReadLine();
        Environment.Exit(0);
    

    else
    
        Console.WriteLine("You chose case " + userCase);
        Console.ReadLine();
    

当用户选择它们时,我需要一一引用这些案例,然后在最初打开时将它们从数组中的调用中删除。

【问题讨论】:

你有问题吗? 在这里搜索shuffle c#几十个答案,等你来发现 @Enigmativity 如何将一组数组值分配给另一个数组的值?两者都有 26 个值。 @kzone95:我不清楚“用另一个数组的值分配一组数组值”是什么意思。到目前为止,您的程序有两个数组并接受来自用户的一个输入值。该代码中有什么不起作用吗?如果您的代码正在运行并且您希望继续进行下一步,那么该步骤是什么?在逻辑上将问题分解为小而具体的部分。你接下来要尝试哪一块?你试过什么? 在你的类中定义一个字段private static Random _rnd = new Random();,然后在你定义cashPrizeArray之后就行了:cashPrizeArray = cashPrizeArray.OrderBy(x => _rnd.Next()).ToArray(); 【参考方案1】:

如果您制作一个二维列表,第一个维度显示什么情况,第二个维度显示该金额的金额。然后你检查你是否已经有 使用了该特定案例,如果是,则再试一次(使用 goto,但您可以更改),或者如果尚未使用,则将该案例与第二维中的钱一起添加到列表中。

代码:

public static List<List<string>> PairedCases = new List<List<string>>();

    public static void addsubstrin(string money, string casenom)
    
        List<string> sublist = new List<string>();

        sublist.Add(money);
        sublist.Add(casenom);

        PairedCases.Add(sublist);
    

    static void Main(string[] args)
    
        int[] cashPrizeArray = new int[]  0, 1, 2, 5, 10, 20, 50, 100, 150, 200, 250, 500, 750, 1000, 2000, 3000, 4000, 5000, 10000, 15000, 20000, 25000, 50000, 75000, 100000, 200000 ;
        string[] caseArray = new string[]  "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26" ;

        Random rnd = new Random();

        foreach (int inte in cashPrizeArray)
        
            Restart:;

            int putincase = rnd.Next(1, 27);

            bool found = false;

            //here we chack if its already in the list

            for (int a = 0; a < PairedCases.Count(); a++)
            
                if (putincase.ToString() == PairedCases[a][1])
                
                    found = true;
                
            

            if(found == false)
            
                addsubstrin(inte.ToString(), putincase.ToString());
            
            else
            
                goto Restart;
            
        

        for (int i = 0; i < PairedCases.Count(); i++)
        
            Console.WriteLine(PairedCases[i][0] + "   " + PairedCases[i][1]);
        

        Console.ReadLine();
    

【讨论】:

以上是关于用另一个数组的值随机分配数组值的主要内容,如果未能解决你的问题,请参考以下文章

两个 php 数组 - 用另一个数组的值顺序对一个数组进行排序

Python Numpy:用另一个数组中的对应值替换一个数组中的值

PHP - 用另一个数组替换数组的值

PHP怎么随机获取数组里面的值?

PHP中怎么从一个二维数组中随机取出一个值?

Numpy 根据另一个数组的值分配一个数组值,其中列是基于向量选择的