精华内容
下载资源
问答
  • 【算法入门】平分七筐鱼
    2020-08-06 22:27:46

    //题目:

    甲、乙、丙三位渔夫出海打渔,他们随船带了21只箩筐,当晚返航时,他们发现

    有7筐装满了鱼,还有7筐只装了半筐鱼,另外7筐则是空的。由于他们没有秤,

    只好通过目测认为7个满筐鱼的重量是相等的,7个半筐鱼的重量是相等的。在不将

    鱼倒出来的前提下,怎样将鱼和筐平分为三份?

    #include "Stdio.h"
    
    int a[3][3],count;
    
    void main()
    {
    	int i,j,k,m,n,flag;
    	printf("how to distribute\n");
    
    	for (i=0; i<=3; i++)
    	{
    		a[0][0]=i;
    
    		for (j=i; j<=7-i && j<=3; j++)
    		{
    			a[1][0]=j;
    			if ((a[2][0]=7-j-a[0][0])>3) 
    				continue;
    			if (a[2][0]<a[1][0])
    				break;
    
    			for (k=1; k<=5; k+=2)		//半框为奇数
    			{
    				a[0][1]=k;
    				for (m=1;m<7-k;m+=2)		//半框为奇数
    				{
    					a[1][1]=m;
    					a[2][1]=7-k-m;
    					for (flag=1,n=0;flag&&n<3;n++)
    
    						if (a[n][0]+a[n][1]<7 && a[n][0]*2+a[n][1]==7)		//满的加半框的为3.5框,合为7
    							a[n][2] = 7-a[n][0]-a[n][1];		//一人平分7框
    						else
    							flag=0;
    					if(flag)
    					{
    						printf("NO.%d:  Full Semi Empty\n",++count);
    						for (n=0; n<3; n++)
    							printf("fisher%d:%d    %d   %d\n",n+1,a[n][0],a[n][1],a[n][2]);
    					}
    				}
    			}
    		}
    	}
    	getch();
    }
    
    更多相关内容
  • 平分七筐鱼

    2019-09-19 06:51:55
    当晚返航时,他们发现有7筐装满了鱼,还有7筐只装了半筐鱼,另外7筐则是空的。由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个半筐鱼的重量也是相等的。 在不将鱼倒出来的前提下,怎么将鱼和筐平分...

    问题描述:

    甲、乙、丙三位渔夫出海打鱼,他们随船带了21只箩筐。当晚返航时,他们发现有7筐装满了鱼,还有7筐只装了半筐鱼,另外7筐则是空的。由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个半筐鱼的重量也是相等的。

    在不将鱼倒出来的前提下,怎么将鱼和筐平分三份?

     

    我的代码:

    x=[]
    y=[]
    for i in range(1,6):
        for j in range(1,6):
            k=7-i-j
            if k<=0:
                break
            else:
                x.append([i,j,k])
    for yu in x:
        yu_sum=yu[0]*100+yu[1]*50+yu[2]*0
        if yu_sum==350:
            y.append(yu)
    for yf1 in y:
        for yf2 in y:
            for yf3 in y:
                if yf1[0]+yf2[0]+yf3[0]==7 and yf1[1]+yf2[1]+yf3[1]==7:
                    print yf1,yf2,yf3

    结果:

    [1, 5, 1] [3, 1, 3] [3, 1, 3]
    [2, 3, 2] [2, 3, 2] [3, 1, 3]
    [2, 3, 2] [3, 1, 3] [2, 3, 2]
    [3, 1, 3] [1, 5, 1] [3, 1, 3]
    [3, 1, 3] [2, 3, 2] [2, 3, 2]
    [3, 1, 3] [3, 1, 3] [1, 5, 1]

    我的思路:

    已知有21个筐,三个渔夫,那么每个渔夫应分到7个筐。而且,7个筐装满了鱼(共700),7个筐装了一半的鱼(共350),7个筐没有鱼,又不能倒鱼,假设满的为100,一半的为50,空的为0,那么每个渔夫应分到(7x100+7x50+7x0)/3=350;

    先保证每个渔夫有7个筐,其中第一个筐放的是100的,第二个筐放的是50的,第三个筐放的是0的,共有如下种可能(第一块的for循环):

    [[1, 1, 5], [1, 2, 4], [1, 3, 3], [1, 4, 2], [1, 5, 1], [2, 1, 4], [2, 2, 3], [2, 3, 2], [2, 4, 1], [3, 1, 3], [3, 2, 2], [3, 3, 1], [4, 1, 2], [4, 2, 1], [5, 1, 1]]

    根据上述关系再保证每个渔夫的鱼有350,共有如下种可能(第二块的for循环):

    [[1, 5, 1], [2, 3, 2], [3, 1, 3]]

    最后求出满足筐数位7且鱼有350关系的可能性:

    [1, 5, 1] [3, 1, 3] [3, 1, 3]
    [2, 3, 2] [2, 3, 2] [3, 1, 3]
    [2, 3, 2] [3, 1, 3] [2, 3, 2]
    [3, 1, 3] [1, 5, 1] [3, 1, 3]
    [3, 1, 3] [2, 3, 2] [2, 3, 2]
    [3, 1, 3] [3, 1, 3] [1, 5, 1]
     

    示例代码:

    for a in range(4):
        for b in range(min(4, 7 - a + 1, a + 1)):
            c = 7 - a - b
            if c >= 4 or c > b:
                continue
            h = map(lambda x: int((3.5 - x) / 0.5), (a, b, c))
            if sum(h) == 7:
                print '-' * 20
                for x, y in zip((a, b, c), h):
                    print x, y, 7 - x - y

    结果:

    --------------------
    3 1 3
    2 3 2
    2 3 2
    --------------------
    3 1 3
    3 1 3
    1 5 1
     

    代码分析:

    解题思路:
    1.我们可以计算得知,每人应得3.5框鱼
    2.穷举每人拿到整框数,a, b, c
    3.计算每人应拿半框数,ah, bh, ch,
    4.ah + bh + ch == 7 ?

    转载于:https://my.oschina.net/jmbzs/blog/713053

    展开全文
  • C语言平分7筐鱼

    2021-05-21 06:58:03
    当晚返航时,他们发现有7筐装满了鱼,还有7筐装了半筐鱼,另外7筐则是空的,由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个半筐鱼的重量是相等的。在不将鱼倒出来的前提下,怎样将鱼平分为3份?问题...

    问题描述

    甲、乙、丙三位渔夫出海打鱼,他们随船带了21只箩筐。当晚返航时,他们发现有7筐装满了鱼,还有7筐装了半筐鱼,另外7筐则是空的,由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个半筐鱼的重量是相等的。在不将鱼倒出来的前提下,怎样将鱼平分为3份?

    问题分析

    根据题意可以知道:每个人应分得七个箩筐,其中有3.5筐鱼。解决该问题可以采用一个3*3的数组,数组名为a来表示3个人分到的东西。其中每个人对应数组a的一行,数组的第0列放分到的鱼的整筐数,数组的第1列放分到的半筐数,数组的第2列放分到的空筐数。

    又由题目可以推出:

    (1) 数组的每行或每列的元素之和都为7。

    (2) 对数组的行来说,满筐数加半筐数=3.5。

    (3) 每个人所得的满筐数不能超过3筐。

    (4) 每个人都必须至少有1个半筐,且半筐数一定为奇数。

    对于找到的某种分鱼方案,3个人谁拿哪一份都是相同的,为了避免出现重复的分配方案,可以规定:第2个人的满筐数等于第1个人的满筐数;第2个人的半筐数大于等于第1个人的半筐数。

    下面是完整的代码:

    #include

    int a[3][3], count;

    int main()

    {

    int i, j, k, m, n, flag;

    printf("It exists possible distribtion plans:\n");

    for(i=0; i<=3; i++) /*试探第一个人满筐a[0][0]的值,满筐数不能>3*/

    {

    a[0][0]=i;

    for(j=i; j<=7-i&&j<=3; j++) /*试探第二个人满筐a[1][0]的值,满筐数不能>3*/

    {

    a[1][0]=j;

    if((a[2][0]=7-j-a[0][0])>3)

    continue; /*第三个人满筐数不能>3*/

    if(a[2][0]

    break; /*要求后一个人分的满筐数大于等于前一个人,以排除重复情况*/

    for(k=1; k<=5; k+=2) /*试探半筐a[0][1]的值,半筐数为奇数*/

    {

    a[0][1]=k;

    for(m=1; m<7-k; m+=2) /*试探半筐a[1][1]的值,半筐数为奇数*/

    {

    a[1][1]=m;

    a[2][1]=7-k-m;

    /*判断每个人分到的鱼是 3.5筐,flag为满足题意的标记变量*/

    for(flag=1,n=0; flag&&n<3; n++)

    if(a[n][0]+a[n][1]<7&&a[n][0]*2+a[n][1] == 7)

    a[n][2]=7-a[n][0]-a[n][1]; /*计算应得到的空筐数量*/

    else

    flag=0; /*不符合题意则置标记为0*/

    if(flag)

    {

    ++count;

    printf("No.%d Full basket Semi-basket Empty\n", count);

    for(n=0; n<3; n++)

    printf(" fisher %c: %d %d %d\n",'A'+n, a[n][0], a[n][1], a[n][2]);

    }

    }

    }

    }

    }

    return 0;

    }

    运行结果:

    It exists possible distribtion plans:

    No.1 Full basket Semi-basket Empty

    fisher A: 1 5 1

    fisher B: 3 1 3

    fisher C: 3 1 3

    No.2 Full basket Semi-basket Empty

    fisher A: 2 3 2

    fisher B: 2 3 2

    fisher C: 3 1 3

    展开全文
  • 当晚返航时,他们发现有7筐装满了鱼,还有7筐只装了半筐鱼,另外7筐则是空的。由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个半筐鱼的重量也是相等的。在不将鱼倒出来的前提下,怎么将鱼和筐平分三...

    问题描述:

    甲、乙、丙三位渔夫出海打鱼,他们随船带了21只箩筐。当晚返航时,他们发现有7筐装满了鱼,还有7筐只装了半筐鱼,另外7筐则是空的。由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个半筐鱼的重量也是相等的。

    在不将鱼倒出来的前提下,怎么将鱼和筐平分三份?

    我的代码:

    x=[]

    y=[]

    for i in range(1,6):

    for j in range(1,6):

    k=7-i-j

    if k<=0:

    break

    else:

    x.append([i,j,k])

    for yu in x:

    yu_sum=yu[0]*100+yu[1]*50+yu[2]*0

    if yu_sum==350:

    y.append(yu)

    for yf1 in y:

    for yf2 in y:

    for yf3 in y:

    if yf1[0]+yf2[0]+yf3[0]==7 and yf1[1]+yf2[1]+yf3[1]==7:

    print yf1,yf2,yf3

    结果:

    [1, 5, 1] [3, 1, 3] [3, 1, 3]

    [2, 3, 2] [2, 3, 2] [3, 1, 3]

    [2, 3, 2] [3, 1, 3] [2, 3, 2]

    [3, 1, 3] [1, 5, 1] [3, 1, 3]

    [3, 1, 3] [2, 3, 2] [2, 3, 2]

    [3, 1, 3] [3, 1, 3] [1, 5, 1]

    我的思路:

    已知有21个筐,三个渔夫,那么每个渔夫应分到7个筐。而且,7个筐装满了鱼(共700),7个筐装了一半的鱼(共350),7个筐没有鱼,又不能倒鱼,假设满的为100,一半的为50,空的为0,那么每个渔夫应分到(7x100+7x50+7x0)/3=350;

    先保证每个渔夫有7个筐,其中第一个筐放的是100的,第二个筐放的是50的,第三个筐放的是0的,共有如下种可能(第一块的for循环):

    [[1, 1, 5], [1, 2, 4], [1, 3, 3], [1, 4, 2], [1, 5, 1], [2, 1, 4], [2, 2, 3], [2, 3, 2], [2, 4, 1], [3, 1, 3], [3, 2, 2], [3, 3, 1], [4, 1, 2], [4, 2, 1], [5, 1, 1]]

    根据上述关系再保证每个渔夫的鱼有350,共有如下种可能(第二块的for循环):

    [[1, 5, 1], [2, 3, 2], [3, 1, 3]]

    最后求出满足筐数位7且鱼有350关系的可能性:

    [1, 5, 1] [3, 1, 3] [3, 1, 3]

    [2, 3, 2] [2, 3, 2] [3, 1, 3]

    [2, 3, 2] [3, 1, 3] [2, 3, 2]

    [3, 1, 3] [1, 5, 1] [3, 1, 3]

    [3, 1, 3] [2, 3, 2] [2, 3, 2]

    [3, 1, 3] [3, 1, 3] [1, 5, 1]

    示例代码:

    for a in range(4):

    for b in range(min(4, 7 - a + 1, a + 1)):

    c = 7 - a - b

    if c >= 4 or c > b:

    continue

    h = map(lambda x: int((3.5 - x) / 0.5), (a, b, c))

    if sum(h) == 7:

    print '-' * 20

    for x, y in zip((a, b, c), h):

    print x, y, 7 - x - y

    结果:

    --------------------

    3 1 3

    2 3 2

    2 3 2

    --------------------

    3 1 3

    3 1 3

    1 5 1

    代码分析:

    解题思路:

    1.我们可以计算得知,每人应得3.5框鱼

    2.穷举每人拿到整框数,a, b, c

    3.计算每人应拿半框数,ah, bh, ch,

    4.ah + bh + ch == 7 ?

    展开全文
  • 平分七筐鱼,经典C++

    2009-05-27 17:26:32
    当晚返航时,他们发现有筐装满了鱼,还有筐装了半筐鱼,另外筐则是空的,由于他们没有秤,只好通过目测认为个满筐鱼的重量是相等的,7个半筐鱼的重量是相等的。在不将鱼倒出来的前提下,怎样将鱼和筐平分为...
  • 当晚返航时,他们发现有7筐装满了鱼,还有7筐装了半筐鱼,另外7筐则是空的,由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个半筐鱼的重量是相等的。在不将鱼倒出来的前提下,怎么将鱼平分为3份? ...
  • 题目:平分七筐鱼

    2018-07-26 20:24:43
    #include&lt;stdio.h&gt; int a[3][3],count; int main() { int i,j,k,m,n,flag; printf("It exists possible distribution plans:\n"); for(i = 0;i &lt;...= 7...
  • 原标题:C语言平分7筐鱼代码及解析问题描述甲、乙、丙三位渔夫出海打鱼,他们随船带了21只箩筐。当晚返航时,他们发现有7筐装满了鱼,还有7筐装了半筐鱼,另外7筐则是空的,由于他们没有秤,只好通过目测认为7个满筐...
  • C语言每日一练——第60天:平分7筐鱼

    千次阅读 多人点赞 2021-11-19 22:53:46
    C语言每日一练 2021年11月19日——分析:我的思路(参照网上他人方法) ...确定完他们的满筐鱼箩筐数之后,接着遍历甲乙的半筐鱼箩筐数,丙的半筐鱼箩筐数则等于7-甲乙的半筐鱼的箩筐数之和。由于前面确定的
  • 100c之17:平分七筐鱼

    2013-05-18 20:38:00
    100c之17:平分七筐鱼 pre { background-color: #2f4f4f;line-height: 1.6; FONT: 10.5pt Consola,"Yahei Mono", Yahei Mono, helvetica; color:wheat; } 100c之17:平分七筐鱼 Table...
  • 捕鱼分鱼、出售鱼、平分七筐鱼

    千次阅读 2015-05-05 21:46:07
    第一个醒来的人将分为5份,然后把多余的一条丢了……拿走了自己的一份。然后第二个人也将分为5分,居然也把多余的一条给丢了……当然也不忘自己的一份。同样的,后面三个人也采用了相同的操作。那么他们至少捕了...
  • 随船带了21只箩筐,当返航时,发现有7筐装满了鱼、7筐装了半筐鱼7筐是空的。在不将鱼倒出来的前提下,怎样将鱼和筐平分为三分?  根据题意可以得到:每个人应该分到7个箩筐,共有3.5筐鱼。采用一个3*3的数组a来...
  • (百例编程)17.平分七筐鱼(深)

    千次阅读 2012-05-26 13:36:51
    当晚返航时,他们发现有筐装满了鱼,还有筐装了半筐鱼,另外筐则是空的,由于他们没有秤,只好通过目测认为个满筐鱼的重量是相等的,7个半筐鱼的重量是相等的。在不将鱼倒出来的前提下,怎样将鱼和筐平分为...
  • 当晚返航时,他们发现有7筐装满了鱼,还有7筐只装了半筐鱼,另外7筐则是空的。由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个半筐鱼的重量也是相等的。在不将鱼倒出来的前提下,怎么将鱼和筐平分为...
  • 这是其他计算机/编程语言的上一页,我们正在处理中,将那里的所有书籍都转换为新页面。 请再次检查此页面!!!
  • 当晚返航时,他们发现有7筐装满了鱼,还有7筐装了半筐鱼,另外7筐则是空的,由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个半筐鱼的重量是相等的。在不将鱼倒出来的前提下,怎样将鱼和筐平分为3份? ...
  • 7筐鱼

    2017-06-16 21:00:28
    当晚返航时,他们发现有7筐装满了鱼,还有7筐装了半筐鱼,另外7筐则是空的,由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个半筐鱼的重量是相等的。在不将鱼倒出来的前提下,怎样将鱼平分为3份? ...
  • 【反思】 1.此类问题属于方程求解问题,...3.自己忽略了一个事实:空框的求取不需要额外的循环,因为题目已知有21个框,所以每人必然是7个框,求出了满框和半框,用7减去前两个变量就可以得到空框的数量。所以当...
  • JAVA之渔夫分的问题

    2021-01-11 08:26:16
    * 还有7筐只装了半筐鱼,另外7筐则是空的。 * 由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的 * ,7个半筐鱼的重量也是相等的。在不将鱼倒出来的前提下 * ,怎么将鱼和筐平分为三份? * 如图所示...
  • 平分最近法 两类分类

    2011-03-14 21:25:35
    对于初学者,可参考借鉴,是一个简单的matlab程序,实现两类分类,方法是平分最近法
  • 渔夫分问题

    千次阅读 2019-05-12 12:36:41
    当晚返航时,他们发现有7筐装满了鱼,还有7筐装了半筐鱼,另外7筐则是空的,由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个半筐鱼的重量是相等的。在不将鱼倒出来的前提下,怎样将鱼平分为3份?
  • /**************************************** * File Name : math.c * Creat Data : 2015.1.24 * Author : ZY *****************************************/ .../*平分七筐鱼*/ /*甲乙丙三位渔夫出海打鱼,他们随船带

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 197
精华内容 78
关键字:

平分七筐鱼