关于排列组合算法的问题
问题描述:
关于排列组合算法的问题
从1到93之间任取8个数字组成一个数列,要求不能是降序排列,也就是说数列中任何一个数字应该大于等于它前面的数字.请问共有多少种排列方式?
例如:
{1,2,3,4,5,6,7,8}
{1,2,2,2,5,6,7,8}
{1,2,3,4,5,6,7,93}
{10,11,30,40,44,50,60,90}
以上几种排列都是符合要求的
而以下是几种不符合要求的排列:
{1,2,3,2,4,5,6,7}
{10,10,10,9,10,10,10,11}
哈 谢一楼的算法
我补充下,是想用排列和组合的方式表达这个算法,比如从十个元素里面挑出三个有多少种挑法可以表示成
C(10,3),其他的类推.
我不清楚能不能只用排列和组合表示出这个算法,如果不能的话就只能手写循环了...另外刚刚忘记说,如果按照上面给出的条件得出的答案是1x8x6x0x8x7x8x9x4x3x0x0(因为连续数字会被系统认作电话号码,所以用x隔开).求通用算法~
答
献上历史上最烂的算法,不知道哪年能算出来!
后面加了一个新算法
class TheBadOne
{
public static void main(String[] args)
{
int counter=0;
for(int i=1;i