求一个用C#做排列组合的代码

就比如说15个数选10个重复算一个然后按照从小到大输出
急急急

从15中选出10个有3003中选法,需要每个都输出吗?
从textBox1输入输出个数,输出到richTextBox1中
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication30
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int[] array = new int[15] { 12, 33, 45, 66, 75, 34, 56, 123, 442, 5454, 242, 234, 665, 5343, 552 };
private void button1_Click(object sender, EventArgs e)
{
lines = new List<string>();
int count = 0;
try
{
count = Convert.ToInt32(textBox1.Text);
if (count <= 0)
{
MessageBox.Show("输出个数必须大于0");
return;
}
}
catch
{
MessageBox.Show("请在TextBox中输入输出个数");
}
OutPut(count);
richTextBox1.Lines = lines.ToArray();
}
List<String> lines;
List<int> listI;
private void OutPut(int count)
{
while (lines.Count <= count)
{
Application.DoEvents();
listI = new List<int>();
String s = "";
for (int i = 0; i < 10; i++)
{
Random r = new Random();
int temp;
do
{
temp = array[r.Next(0, 15)];
} while (listI.Contains(temp));
listI.Add(temp);
}
listI.Sort();
foreach (int i in listI)
{
s += i.ToString() + " ";
}
if (!lines.Contains(s))
{
lines.Add(s);
richTextBox1.Lines = lines.ToArray();
}
}
}
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-09-08
这么写就行
private void button1_Click(object sender, EventArgs e)
{
List<int> list = new List<int>(new int[15] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 });
List<int> result = new List<int>();
Random random = new Random();
while (list.Count > 5)
{
int index = random.Next(0, list.Count);
result.Add(list[index]);
list.RemoveAt(index);
}
result.Sort();
foreach (int var in result)
{
MessageBox.Show(var.ToString());
}
}

求一个用C#做排列组合的代码
int[] array = new int[15] { 12, 33, 45, 66, 75, 34, 56, 123, 442, 5454, 242, 234, 665, 5343, 552 };private void button1_Click(object sender, EventArgs e){ lines = new List<string>();int count = 0;try { count = Convert.ToInt32(textBox1.Text);if (count ...

C语言 排列组合
int c = i >> j;if ( (c & 1) == 1 ){ int tmp = b[ j ];b[ j ] = b[ j + 1 ];b[ j + 1 ] = tmp;} } list.Add( b );} System.Text.StringBuilder sb = new System.Text.StringBuilder();sb.AppendLine( string.Format( "共 {0} 个结果" , list.Count ) ...

C#怎么得到一个数组集合的排列组合,写一种算法。,,,。
\/\/如果就你问题而言如下,如果你上面只是举列说明问题,实际上有很多词语数组那么建议你做个递归方法string[] result=new string[str1.lenth+str2.lenth+str3.lenth];int resultindex=0;for(int i=0;i<str1.lenth;i++){ for(int j=0;j<str2.lenth;j++) { for(int k=0;k<st...

...中元素有1,2,3.数组2中元素有A,B,C,D。求排列组合
{ char[] c1 = new char[] { 'a', 'b', 'c', 'd' };char[] c2 = new char[] { '1', '2', '3' };char[] cc = new char[(c1.Length + 1) * c2.Length+c1.Length];\/\/预先准备一个数组 List<char[]> lc = new List<char[]>();for (int i = 0; i < cc...

c#如何进行排列组合
你把数组改为arr = {"","0","1","2","a","b","c"}(增加一个空字符),然后排列组合,排除最后的”“空字符使用7层for循环即可 for(int a=0;a<7;a++){ for(int b=0;b<7;b++){ ……(arr[a]+arr[b]+arr[c]+arr[d]+arr[e]+arr[f]+arr[g]) } } ...

C# 数组元素排列组合
想了好一会,自己写了一个类实现全排列的算法:这么用 :List<string> result= FullArrange.GetArrangeResult("abc");public class FullArrange { public static List<string> GetArrangeResult(string str){ str = str.Trim();if (string.IsNullOrEmpty(str)){ return new List<string>();} els...

c# 如何将几个数字进行搭配相加,得出全排列组合
static int[] number;static int[] result;\/\/\/ \/\/\/ 应用程序的主入口点。\/\/\/ [STAThread]static void Main(string[] args){ number = new int[] {2,3,4,6};result = new int[number.Length];Backtrace(0);System.Console.Read();} static void Backtrace(int i){ if (i >= num...

求一排列组合算法(c++ c# )
next_permutation()是c++ stl中提供的全排列算法 你可以在每次输出之前作判断阿 include<iostream> include<algorithm> using namespace std;define n 4 char a[n]={'a','b','c','d'};int main(){ int i;while(1){ for(i=0;i<n;i++)printf("%c ",a[i]);printf("\\n");if(...

c# 一个数组元素排列组合
string[] values = { "A", "B", "C", "D", "E" };Console.WriteLine("取2个组合:");for (int i = 0; i < values.Length - 1; i++){for (int j = i + 1; j < values.Length; j++)Console.WriteLine(values[i] + values[j]);}Console.WriteLine("取3个组合:");...

C# 排列组合
这就是一个组合问题额,从第一个列表List1中,以第二个列表的长度(比如长度为3)为个数(3),获取所有个数为此个数的无重复项的组。比如从5个item的list中,取出3个item为一组,获取所有这样的组。长度为len1的List1,长度为len2的list2,从list1中获取item个数为len2的所有的组Lists3[]....

相似回答