精华内容
下载资源
问答
  • 在100个数字中任意选出n个数字,让这些数字相加所得到的和最接近一个数字,要运算量小的方法
  • 从10个数字中取5个数的所有组合

    千次阅读 2006-05-12 14:13:00
    哈,申请了这blog好久也没有在上面写东西(太懒),今天回答了一问题觉得字挺多的,搬到这里来。原贴地址:...可以模拟手算的算法:先简化问题,2/3问题开始先排序1.2.3取出1然后还需要

    哈,申请了这个blog好久也没有在上面写东西(太懒),今天回答了一个问题觉得字挺多的,搬到这里来。

    原贴地址:http://community.csdn.net/Expert/topic/4746/4746331.xml?temp=.4790308

    哈这个问题有点意思,我自认为小学的时候数学还可以哈哈,来讨论一下。
    可以模拟手算的算法:
    先简化问题,从2/3问题开始
    先排序1.2.3
    取出1然后还需要再取一个数字可以是2.可以是3这样我们得到[1.2][1.3]所有含有1的二元组已经取到。
    然后我们列举所有含2的二元组,取出2还要再取一个数字,注意这里有一个要点我们只可以向后取不可以向前取,这是为了不产生重复的二元组,理解这个要点对解决这个问题很重要。所以这里只可以取3得到[2.3]
    下面我们取所有含有3的组合,取出3根据向后取的原则,我们发现已经没有可以取到的数字了。这样这个问题就结束了我们得到结果[1.2][1.3][2.3]
    下面我们把这个问题扩展一下变成3/4问题
    排序:1.2.3.4
    先列举含有1的三元组,取出1,这里另外一个要点来了,我们的任务转化成为要在2.3.4中取出所有的2元组然后和1组成三元组这样这里转化为2/3问题,之后我们取所有含2的三元组,注意只能向后取的原则,问题转化为在3.4中取2元组的2/2问题

    看到这里我们应该可以理解手算的操作方法了。
    要把这个操作改写成计算机算法并不复杂。
    result_array fn(source_array,start,end,n)
    实现这样一个递归函数就可以了
    result_array 是一个list内容是所有要求的n元组,source_array是原始的元素集合,start,end表明了区间,n是n元组的n,这样做是为了节省空间,免得每次递归都要复制出一个array作为取值元素集合。
    方法里面的内容:
    哈哈大家补充,不复杂的。
    基本上是一个循环
    先判断n是否=1 是就把所有元素放到一个list中返回,如果不是的话
    对每一个元素如果他右面的元素>=n-1那么就对右面的元素调用fn(source_array,当前位置+1,末尾,n-1)那返回结果和元素组合放进一个list中,如果小于n-1了那么跳出循环返回这个list。
    就这样了。

    展开全文
  • 任意10个数字中最大的一个数字

    千次阅读 2006-05-30 23:46:00
    /********************************************************** 求任意10个数字中最大的一个数字 . QQ139767**********************************************************/#include int max(int a,int b){ return...

    /**********************************************************
      求任意10个数字中最大的一个数字

      <Edison wong>. QQ139767
    **********************************************************/
    #include <stdio.h>
    int max(int a,int b)
    {
     return(a>b?a:b);
    }
    void main()
    {
     int a[10],b,c,d;
     printf("请输入10个数字/n");
     for(b=0;b<10;b++)
      scanf("%d",&a[b]);
     c=a[0];
     for(b=1;b<10;b++)
      c=max(c,a[b]);
     printf("最大的数字是%d/n",c);
    }

     

     

    展开全文
  • Python实现:有四个数字1、2、3、4,能组成多少互不相同且无重复数字的三位?各是多少? 分析 思想:思路比较容易,只需要逐个遍历。遍历的时候注意十位数字不能与百位数字相同,各位数字不能与前两者相同即可...

    题目

    Python实现:有四个数字1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

    分析

    思想:思路比较容易,只需要逐个遍历。遍历的时候注意十位数字不能与百位数字相同,各位数字不能与前两者相同即可。
    Python:思路虽然如此,涉及到具体实现时,有所不同。Python的思路可以是将数字建成一个列表,然后依次弹出,为了保证数字不会重复,可以将弹出后所剩的列表在后面遍历使用,这样就可以有效避免数字重复。举个例子,百位将数字1弹出,然后只剩下2,3,4了,再将剩余的2,3,4用于十位数字的获取,就不会和百位重复了。个位也是如此。但是需要注意的是由于百位也是循环使用的,因此不要操作原列表,复制一个处理就好。python的实现代码如代码1所示。
    C++:C++的想法就很简单了,只需要逐个取出数字,然后对比。好久没写C++了,竟然连头文件怎么写的……深感汗颜,自己都笑了

    itertools:在网上兜了一圈,看到惊为天人的代码,只需要3行……见代码4。
    这个问题实际是笛卡尔积的变形,只是将其中数字内部有重复数字的去掉。笛卡尔积的定义如下:

    笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为X × Y,第

    展开全文
  • //随机生成一段要求的数字 function red(min,max){ return Math.ceil(Math.random()*(max-min+1)+min-1); }; function redarr(min,max,long){ //声明一空数组arr var arr=[]; //控制数组长度 while(arr....
    //随机生成一段要求的数字
    function red(min,max){
    	return Math.ceil(Math.random()*(max-min+1)+min-1);
    };
    function redarr(min,max,long){
    	//声明一个空数组arr
    	var arr=[];
    	//控制数组长度
    	while(arr.length<long){
    		//在要求范围中抽取一个数
    		var red1=red(min,max);
    		//判断生成的随机数red1是否在数组arr里,如果不在,就将这个随机数添加到数组里,如果在,重复下一次循环
    		if(arr.indexOf(red1)==-1){
    			arr.push(red1);
    		};
    	};
    	//将抽取好的数组按照从下到大排列并输出
    	return arr.sort(function(a,b){return a-b});
    };
    

    由这个可以完成抽球问题

    双色球
    红球: 在1~33之间随机取6个,不能重复
    蓝球: 在1~16之间随机取1个,可以和红球数字重复
    把所取到随机放入到数组,其中前6个红球要进行从小到大的排序,蓝球要出现在最后

    function red(min,max){
    	return Math.ceil(Math.random()*(max-min+1)+min-1);
    };
    function redarr(min,max,long){
    	var arr=[];
    	while(arr.length<long){
    		var red1=red(min,max);
    		if(arr.indexOf(red1)==-1){
    			arr.push(red1);
    		};
    	};
    	arr.sort(function(a,b){return a-b});
    	//最后随机抽取一个1~16的数字,并添加在数组的最后
    	var blue=Math.ceil(Math.random()*16);
    	arr.push(blue);
    	return arr;
    };
    console.log(redarr(1,33,6));
    
    展开全文
  • 给定一有n正整数的数组A和一整数sum,求选择数组A部分数字和为sum的方案。 当两种选取方案有一个数字的下标不一样,我们就认为是不同的组成方案。 输入描述: 输入为两行: 第一行为两正整数n(1 ≤ n ...
  • 取任意个数字位数 Java

    千次阅读 2018-03-16 15:39:06
    取任意个数字位数 Java 话不多说,直接上代码: Scanner fin=new Scanner(System.in); int i=fin.nextInt(); //输入任意个数字 int m; while(m&gt;9){ m=i%10; //所报位数 } System.out....
  • python字符串提取数字

    万次阅读 多人点赞 2018-05-14 14:43:16
    ## \d 匹配任意数字。 ## \D 匹配任意数字字符。 ## x? 匹配一可选的 x 字符 (换言之,它匹配 1 次或者 0 次 x 字符)。 ## x* 匹配0次或者多次 x 字符。 ## x+ 匹配1次或者多次 x 字符。 ## x{n,m} 匹配...
  • 给定一整数n,和一包含n一位数字的数组,可以任意选取部分数字(或者全选),问可以构成的最大的3的倍数是多少呢? 注意:最后的结果可能很大,建议采用字符串的形式进行储存,如果结果不存在请输出No Exist ...
  • 求1-1010数中取出3个不同的,共有多少种组合方式,算法:使用数学的组合公式,其中m=10,n=3 用C语言
  • 比如数字集合 1,2,3, 4,5,6 ,列出所有数字相加等于6的可能性,那么结果有:1+2+3,2+4, 主要这里的结果不是数组打乱顺序相加,而是按照数组顺序取任意个数相加减,所有大家看到结果只有1+2+3而没有1+3+2或则3+2+1 ...
  • 如果左边起取出1个数字,需要能被1整除,取出个数字组成的能被2整除,取出个数字组成的能被3整除,依次类推。。。每次取数都是左边。问,这个数是什么?给出求解此的算法。   代码如下:...
  • 比如1,2,3,4,5,6这六个数字,我想得到它任意5个数字的组合或任意4个数字的组合,该如何得到?使用递归,函数主体如下(il_count为实例变量,仅用于统计,可以不要), mle_1用于输出结果//=======================...
  • M个数字中随机N个数(不重复)

    千次阅读 2017-08-29 15:51:23
    M个数字中随机N个数,最直接的想法把已经取得的随机数存储起来, 每次随机个数, 在存储的随机数如果能够找到,就要重新再, 直到到足够数量的随机数。 这方法的好处是容易理解,容易实现。 但它...
  • # define MAXN 100 int a[MAXN]; //定位数组,用于指示选取元素集合数组的位置,选取元素集合数组0...//指示定位数组哪个成员正在移进 unsigned int count=0; //初始化定位数组,0 起始的位置 ,开始的选择必是位置
  • 字符串中取出数字,但数字间必须用“,”隔开,输入可以为小数。这段代码会输出能被3整除,不能被7整除的的个数(不是重点)。重点是可以解决“输入任意个数字的问题”。 对于这问题,如果使用vector那当我没说...
  • 题意:给定一值和一数组,求数组中任意个数字的和等于给定值的所有序列 输入: 10 1 2 7 5 6 8 10 输出 1 2 7 2 8 10 分析:此题首先对数组排序,再采用递归和回溯的方法,对于每次回溯,是否采用 i ...
  • 问题如上。 这是我被面试的一题目。我的第一反应给出的解决办法是,开启 n 线程并标记序号,各个线程打印出它的序号。直到有 m 线程被调度时,停止所有线程。...想办法了,因为不可能在一进程里产生
  • 1000个(0-9)数字的数组查找出现次数最多的3个数字,输出这3个数字和出现的次数。 /** * 1000个(0-9)数字的数组查找出现次数最多的3个数字,输出这三个数字和出现的次数。 */ import java.util....
  • 题目:top-k算法,n大小的数组,找出k最大的数字并输出 输入:数组大小n=10;k的值为5;数组为:9,8,3,2,10,20,13,1,5 输出:20,13,10,9,8 思路:1、维护k最小堆,如果某个新进来的数字大于...
  • 2.1,2,…,15小明和小红两人各任取个数字,现已知小明到的数字是5的倍数,请问小明到的大于小红到的的概率是多少? A、7/14 B、8/14 C、9/14 D、10/14 C 1/3 *(4/14+9/14+14/14) ...
  • '''找出n个自然数(1,2,3,4,...,n)... 分析以上组合实例,5个取出3个数10组组合,其中魅族三个由两个特点: (1)、三个都互不相同 (2)、前面的小于后面的 因此可以用3层循环模拟每个组合种的3个数
  • 0,4,9,21上面四个数字中...gfx3.2-狼人杀(228446613) 15:04:39你们可以这么想 如果说 取出 前后顺序无所谓的话 四个里面取3个 就相当于 取出一个gfx3.2-狼人杀(228446613) 15:05:15四个一个 有几种...
  • js所给数字中随机选几个数

    千次阅读 2018-06-26 09:37:27
    例: 0~9十个数字中随机选出5个数 var arr = [0,1,2,3,4,5,6,7,8,9]; var out = []; var num = 5; while(out.length &lt; num){ var temp = (Math.random()*arr.length) &gt;&gt; 0; ...
  • N个数中取出任意个数,求和为指定值的解,并输出对应的,思想就是二进制思想,N个数任意个2^N 种可能,数组里面的每一元素可能被选中,可能不被选中,1代表选中,0代表不选中。假如N=3,哪么就有2^3=8种可能...
  • 新排序规则:整数中取出个数a和b,将a和b转化成字符串"a"和"b",再分别把"a"和"b"拼接成"ab"和"ba", 再把"ab"和"ba"转出...
  • 数组随机取出若干个数

    千次阅读 2018-08-06 17:13:27
    下面给出数组随机取出若干数字组成新书组和数组随机取出个数字的方法,代码如下: /** * 数组随机取出若干元素组成数组 * @param {Array} arr 原数组 * @param {Number} count 需要随机...
  • 寻找神秘4位数:在0-9十个数字中任意选择4个数字,如选2,9,8,4这四个数字,组成最大的是9842,最小的是2489,然后相减,再把得到的4位数组成的最大与最小值相减,在这样重复的过程,你能找到一神秘的四位数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 274,005
精华内容 109,602
关键字:

从10个数中任取3个数字