精华内容
下载资源
问答
  • 对这个问题可以先减少n的个数如四个球取两个。 假设有a、b、c、d四个球,那么对于a有两种情况一种... a球和其他三个球取一个 其他三个球取两个 用函数表示就是:假设f(n,m)是n取m的种类数,则上述情况就是f(4...

    对这个问题可以先减少n的个数如四个球取两个。

    假设有a、b、c、d四个球,那么对于a有两种情况一种是确定要取、一种是确定不取。

    即下面这两个情况:

    1.    a球和其他三个球取一个
    2.    其他三个球取两个

    用函数表示就是:假设f(n,m)是n取m的种类数,则上述情况就是f(4,2)=f(3,1)+f(3,2);

    再对其进行抽象就是:

    1.    取第一个球和其他n-1个球取m-1个f(n-1,m-1)
    2.    不取第一个球和其他n-1个球取m个f(n-1,m)

    表示成公式就是:f(n,m)=f(n-1,m-1)+f(n-1,m);

    下面是具体的java实现的代码

    	// n个物体取m个,有多少种取法
    	public static int func(int n, int m) {
    		if(n<m)
    			return 0;
    		if(n==m)
    			return 1;
    		if(m==1)
    			return n;
    		return func(n - 1, m - 1) + func(n - 1, m);
    	}
    
    	public static void main(String[] args) {
    		int n = 10, m =3;
    		System.out.println(func(n, m));
    	}

     

    转载于:https://my.oschina.net/yuanmuou/blog/816585

    展开全文
  • 利用枚举类型变量求从5种颜色3不同颜色法 《Ccxu》

    利用枚举类型变量求从5种颜色球中取3个不同颜色球的取法

    《C程序设计(第二版)》 谭浩强 著

    11.9 例11.3 口袋里有红、黄、蓝、白、黑5种颜色的若干个。每次从口袋中取出3个球,问得到3种不同色的球的可能取法,输出每种排列的情况。


    程序(在VS2008环境下main.cpp中编写、编译、运行)

    #include <stdio.h>
    #include <stdlib.h>
    
    void main()
    {
    	enum color {red, yellow, blue, white, black};
    	int  i, j, k, n, loop, pri;
    	n=0;
    	for (i=red; i<=black; i++)
    	{
    		for (j=red; j<=black; j++)
    		{
    			if (i != j)
    			{
    				for (k=red; k<=black; k++)
    				{
    					if ((k!=i) && (k!=j))
    					{
    						n = n+1;
    						printf("%-4d", n);
    						for (loop=1; loop<=3; loop++)
    						{
    							switch(loop)
    							{
    								case 1: pri=i; break;
    								case 2: pri=j; break;
    								case 3: pri=k; break;
    								default: break;
    							}
    							switch(pri)
    							{
    								case red: printf("%-10s", "red"); break;
    								case yellow: printf("%-10s", "yellow"); break;
    								case blue: printf("%-10s", "blue"); break;
    								case white: printf("%-10s", "white"); break;
    								case black: printf("%-10s", "black"); break;
    								default: break;
    							}
    						}
    						printf("\n");
    					}
    				}
    			}
    		}
    	}
    	printf("\ntotal:%5d\n", n);
    
    	system("pause");
    }

    结果




    展开全文
  • 有红黄蓝白黑种颜色的小球若干个,每次从里面任意取三个小球,总共有多少种取法 2.问题分析 1.首先,题中所描述的是一次性取三种小球,所以不考虑取的顺序问题,对于所给的进行编号为 0,1,2,3,4,分别代表...

    不同颜色小球的选择方法

    1.问题重述

    有红黄蓝白黑五种颜色的小球若干个,每次从里面任意取三个小球,总共有多少种取法

    2.问题分析

    1.首先,题中所描述的是一次性取三种小球,所以不考虑取的顺序问题,对于所给的五中球进行编号为 0,1,2,3,4,分别代表红黄蓝白黑。

    2.假设排列形式的取法
    考虑排列顺序,即每取一个小球的概率是相等的,但是根据题意应该剔除有相同颜色的球的情况,所以总数为A(5,3)(排列数)减去三种球颜色相同的情况即A(5,3)-3(具体代码如下)

    ```

    int i,j,k;
    for(i=0;i<=4;i++)<br>
    {  
       for(j=0;j<=4;j++)<br>
        {  
          for(k=0;k<4;k++)<br>
             {
                if(i!=j&&i!=k&&j!=k)<br>
                  {
                   cout<<i<<j<<k<<endl;
                  }
             }
    
         }
      }
    3.组合形式的取法
    
    根据组合数的性质,不考虑排列顺序,若还以排列数的方式进行求解,会造成许多的重复情况,并且还需要额外的空间来记录一种取法是否已经被取过。故不适用<br>
    现在从如何取得角度来考虑<br>
    有五个颜色不同的小球,总共的取法肯定是C(5,3)=10种,但是具体是哪十种,在数据规模小的情况下,可以一一枚举出来,但数据量太大的话,需要按照一定的规律去寻找。<br>
    
    一般来说,取出三个球,为了避免出现重复情况,需要先保证固定两个球,然后去移动第三个球<br>
    比如 对于 红 黄 蓝 白 黑 先固定 红 黄 两个球,然后移动第三个球,可以分别是 蓝 白 黑,由此<br>
    产生3种组合形式 红 黄 蓝 ,红 黄 白 ,红 黄 黑;由于 固定 红 黄 和固定 黄 红 所产生的组合<br>
    是相同的 故不再固定 黄 红 <br>
    在固定 黄 蓝 时,第三个球就不能选择 红,因为红黄蓝已经出现过了,只能选择 白和黑,依此规律,
    依次固定 
    红 蓝 ,红 白 ,但是不能固定红  黑 ,因为固定红黑了之后 第三个·球没办法选。<br>
    在固定完  红 蓝 ,红 黄 ,红 白 后,所有的有红球的情况已经全部取完,接下来就是对 黄 蓝 白 <br>黑 进行C(4,3);<br>
    可以看出 固定的第一个球最多只能移动到 蓝 色,因为移动到 白球 或者 黑球 后面两个球就无法 选择<br>
    同样的 第二个球只能移动到 白球 ,移动到黑球 最后一个球就无法 选择<br>
    第三个球 可以移动到黑球。
    <br>
    据此可以写出组合数C(5,3)的算法<br>
    int i,j,k;
    for(i=0;i<=2;i++)
    {
       for(j=i+1;j<=3;j++)
       {
        for(k=j+1;k<=4;k++)
        {
          cout<<i<<j<<k<<endl;
        }
       }
    }

    3.问题结果

    经过程序求解得到最终答案

    红黄蓝(012)  红黄白(013)   红黄黑(014)   红蓝白(023)  红蓝黑(024)  红白黑(034)  黄蓝白(123)  黄蓝黑(124)   黄白黑(134)  蓝白黑(234)


    一共10种情况;

    欢迎大家讨论,斧正

    转载于:https://www.cnblogs.com/liveformyself/p/11490543.html

    展开全文
  • //5中颜色的若干,一次摸三个,求3种不同颜色的法 #include using namespace std; int main() { enum clour{ Red = 1, Yellow, Blue, White, Black }; clour a; int i, j, k, t = 0,l; for (i = Red; i...
    //5中颜色的球若干,一次摸三个,求3种不同颜色的球的取法
    
    #include<iostream>
    using namespace std;
    int main()
    {
    enum clour{ Red = 1, Yellow, Blue, White, Black };
    clour a; int i, j, k, t = 0,l;
    for (i = Red; i <= Black; ++i)
    {
    for (j = Red; j <= Black; ++j)
    {
    if (i != j)
    {
    for (k = Red; k <= Black; ++k)
    {
    if (k != j&&k != i)
    {
    ++t;
    for (l = 1; l <= 3; ++l)
    {
    switch (l)
    {
    case 1:a = (clour)i; break;
    case 2:a = (clour)j; break;
    case 3:a = (clour)k; break;
    }
    switch (a)
    {
    case Red:cout << "Red" << ' '; break;
    case Yellow:cout << "Yellow" << ' '; break;
    case White:cout << "White" << ' '; break;
    case Blue:cout << "Blue" << ' '; break;
    case Black:cout << "Black" << ' '; break;
    }
    }
    cout << endl;
    }
    }
    }
    }
    }
    cout << t;
    cin >> i;
    return 0;
    }
    展开全文
  • 假设在n个球中有一个球为特殊,那么就有两种方式取球,一种是那个特殊到,剩下的就是从n-1个球中取出m-1个球,另一种是那个特殊没有被到,剩下的就是从n-1个球中取出m个球。  /*在n个球m个球 有...
  • //说明:枚举方法计算盒子中5个球每次3个总共的不同法 //设计思想:每次时做到不相等,即不放回的抽取(组合的A5 3) #include <iostream> #include <iomanip> using namespace std; void 法...
  • 每次从口袋中任意取出三个球,问得到3中不通过颜色的的可能法。(枚举) 2.代码 #include <stdio.h> void main() { enum color {red,yellow,blue,white,black}; enum color i, j, k, pri; int n = ...
  • 首先分析一下:假如有三个球abc一次取出两个就有一下三种分法 ab ac bc 三种分法, 推理一下 假如这n个中有一个彩色的(假象),那你可以把这个情况分成两种,一种是取出这个彩色的 ,一种是不去取出这个彩色...
  • 届_取球游戏

    2016-02-28 18:44:11
    今盒子里有n小球,A、B两人轮流从盒中取球,每人都可以看到另一了多少,也可以看到盒中还剩下多少,并且两人都很聪明,不会做出错误的判断。 我们约定:每人从盒子中取出的的数目必须是:1,3,7...
  • 今盒子里有n小球,A、B两人轮流从盒中取球,每人都可以看到另一了多少,也可以看到盒中还剩下多少,并且两人都很聪明,不会做出错误的判断。 我们约定: 每人从盒子中取出的的数目必须是:1,3,...
  • //共有5中颜色的若干3个球,每颜色都不同,问有多少种法; #include using namespace std; int main() {/*-------------0----1-----2-----3----4------*/  enum color{red,green,white,blue,black}...
  • //三个球的颜色都不同    {   n=n+1; //使累计值n加1      cout(3); //输出当前的n值,字符宽度为3       for (loop=1;loop;loop++) //先后对三个球做处理    {    switch (loop) //loop的值先后为1,...
  • 面试题:袋子里有黑白各100,每次从袋子里2个球,若颜色相同,则放入1黑球,若不同,则放入1。 问:最后袋子里剩下1黑球的概率是多少? 思路一: 每次取球有3种情况: 1)两黑,此时放入1...
  • 取球博弈问题 蓝桥杯

    千次阅读 2019-05-27 15:31:10
    如果无法继续取球,则游戏结束直接深度优先搜索肯定不行,因为如果有1000个球那么每次有法,一共差不多就有3的几百次方。这数据简直是天文数字。 因此需要进行记忆化存储,将原先算过的数据进行保存。但是要...
  • 问题及代码: /* ...*All rights reserved. *文件名称:main.cpp ...*问题描述:从336黑球中任有多少种搭配。 *输入描述:无。 *程序输出:输出有多少种搭配。 */ #include using name
  • 每次从口袋中任意取出三个球,问得到3中不通过颜色的的可能法。(枚举) * 问题描述: * 程序输出: * 问题分析:略 * 算法设计:略 */ #include "stdafx.h" #include #include using namespace std; ...
  • 判断第三个球和前两个是否相同,若相同则按顺序再三个球,直到三个球都不相同为止。记录下三个球此时的数字,在枚举变量中找到对应颜色的并输出。 代码: #include <iostream> using namespace std; ...
  • 在一口袋里放有12个球,已知其中3,3,6黑球,现从中任8,问共有多少种可能的颜色搭配? 分析: 根据问题描述可设任的8个球中红为m,白为n,则黑球为8-m-n。已知12个球中有3红...
  • 取球游戏-题解

    2014-12-31 20:42:36
    取球游戏” 种题解方式   题目描述: 今盒子里有n小球,A、B两人轮流从盒中取球,每人都可以看到另一了多少,也可以看到盒中还剩下多少,并且两人都很聪明,不会做出错误的判断。 我们约定:...
  • 届蓝桥杯省赛C++组 取球游戏

    千次阅读 2018-03-29 23:02:22
    今盒子里有n小球,A、B两人轮流从盒中取球,每人都可以看到另一了多少,也可以看到盒中还剩下多少,并且两人都很聪明,不会做出错误的判断。 我们约定: 每人从盒子中取出的的数目必须是:1,3,...
  • 第一种情况:这两组重量相等,说明不同一定在第三组中,在第三组中取三个(9,10,11)和已知的三个进行第二次称 若相等说明不同是12,然后再让这个和其他称第三次,便知轻重了 若不相等,说明不同
  • 烟台大学计算机学院学生 *All rights reserved. *文件名称:种不同颜色的随机抽出三个的排列组合问题 *作者:杨飞
  • 12个球次找坏球

    2014-05-29 14:05:21
    有人提出:n次最多可以从(3^n-1)/2个球中称出一劣质(有兴趣的人用数学归纳法证明一下发给我),也就是说3次最多可处理13个球的规模,题目12大概是为了回避13这老外认为不太吉利的数字吧。
  • * * 输入描述:出三个球,问得到3中不通过颜色的口袋中有红黄蓝白黑5种颜色的若干个。每次从口袋中任意的可能法。(枚举) * 问题描述: * 程序输出: * 问题分析:略 * 算法设计:略 */ #...
  • java实现第七届蓝桥杯取球博弈

    万次阅读 多人点赞 2019-07-29 12:28:23
    一共有N个球,每人轮流取球,每次可取集合{n1,n2,n3}中的任何一数目。 如果无法继续取球,则游戏结束。 此时,持有奇数个球的一方获胜。 如果两人都是奇数,则为平局。 假设双方都采用最聪明的法, 第一个取球...
  • 现在取5个球,求在以下的条件下:  1、5种不同颜色,  2、4种不同颜色的,  3、3种不同颜色的,  4、2种不同颜色的,  它们的概率。 问题: 1、5次分别是5种不同颜色的概率, 2、5次 4种不同...
  • 桶中黑白问题

    2016-09-08 15:47:16
    桶中黑白问题
  • 蓝桥杯 取球概率 随机模拟

    千次阅读 2015-04-04 16:02:35
    口袋中有5只红,4只白。随机从口袋中取出3个球,则取出12的概率是多大?类似这样的数学问题,在计算的时候往往十分复杂。但如果通过计算机模拟这过程,比如进行100000次取球模拟,统计一下指定...
  • 盒子取球方法二今盒子里有 n 小球,A、B 两人轮流从盒中取球,每人都可以看到另一了多少, 也可以看到盒中还剩下多少,并且两人都很聪明,不会做出错误的判断。 我们约定:每人从盒子中取出的的...
  • 今盒子里有n小球,A、B两人轮流从盒中取球,每人都可以看到另一了多少,也可以看到盒中还剩下多少,并且两人都很聪明,不会做出错误的判断。    我们约定:    每人从盒子中取出的的数目...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,092
精华内容 22,836
关键字:

五个球取三个