请教一道 数学题

Nancy2011

注册
2011-04-15
消息
1,853
荣誉分数
399
声望点数
143
呃,辅导女儿数学,把我自己都给难住了。

题目是:

把 21 22 23 24 25 26 27 28 29这9个数字填入 圆圈内,使横行,竖行,和斜行上的三个数相加,都等于75。

配的图,是一个内有米字连线的正方形,四个角,和四条边的中间,以及米字的中心画有一个圆圈,共计9个。


我明白第一步,是应该把数字从大到小写成一排,最大和最小的连,共计能连成四对;另外还剩余一个 25。这个25居中,所以应该填写在米字的中心;它和那四对相加后的得数都是75。

问题是,怎么摆放那四对数字呢?我捣鼓了半天,终于摆对了。可是是蒙上的。还是不晓得里面的规律。

不解,有人知晓其中的门道吗?
 
以后这种事给何超版个QQH就行了.
 
我记得好象中间一竖排放中间的三个数. 24 25 26 .

你可以先用 123456789这9个数摆, 数小点好算.
 
中心的要被算4次。
角上的要被算3次。
边上中间的只需要算两次。
 
如果题没错的话就是无解的



呃,辅导女儿数学,把我自己都给难住了。



题目是:



21 21 23 24 25 26 27 28 29这9个数字填入 圆圈内,使横行,竖行,和斜行上的三个数相加,都等于75。



配的图,是一个内有米字连线的正方形,四个角,和四条边的中间,以及米字的中心画有一个圆圈,共计9个。





我明白第一步,是应该把数字从大到小写成一排,最大和最小的连,共计能连成四对;另外还剩余一个 25。这个25居中,所以应该填写在米字的中心;它和那四对相加后的得数都是75。



问题是,怎么摆放那四对数字呢?我捣鼓了半天,终于摆对了。可是是蒙上的。还是不晓得里面的规律。



不解,有人知晓其中的门道吗?
 
中心的要被算4次。
角上的要被算3次。
边上中间的只需要算两次。


对啊,对啊!

四组数字,21和29,22和28, 23和27 ,24和26怎么个摆法?

最大的摆在要被算三次的角?最小的摆在要被算两次的边中间?我找不到规律,又不能给女儿说,你自己摆吧,多试试看,就碰出来了。

所以,请问,摆放的时候,内在有何逻辑要求吗?
 
呃,辅导女儿数学,把我自己都给难住了。

题目是:

把 21 21 23 24 25 26 27 28 29这9个数字填入 圆圈内,使横行,竖行,和斜行上的三个数相加,都等于75。

配的图,是一个内有米字连线的正方形,四个角,和四条边的中间,以及米字的中心画有一个圆圈,共计9个。


我明白第一步,是应该把数字从大到小写成一排,最大和最小的连,共计能连成四对;另外还剩余一个 25。这个25居中,所以应该填写在米字的中心;它和那四对相加后的得数都是75。

问题是,怎么摆放那四对数字呢?我捣鼓了半天,终于摆对了。可是是蒙上的。还是不晓得里面的规律。

不解,有人知晓其中的门道吗?

怎么可能?两个21?
 
我记得好象中间一竖排放中间的三个数. 24 25 26 .

你可以先用 123456789这9个数摆, 数小点好算.

谢谢,不过,中间一竖排,和中间一横排是一样的性质啊? 究竟把中间的数字摆给谁呢?
 
有一个口角(jue)叫
二四为肩
六八为足
左七右三
帽九尾一
五在中间
就是将数位(必须是有一定顺序的)从头至尾标上1到9然后依照这个口角添
 
有一个口角(jue)叫
二四为肩
六八为足
左七右三
帽九尾一
五在中间
就是将数位(必须是有一定顺序的)从头至尾标上1到9然后依照这个口角添

射雕英雄传上英姑的绝招 :cool:
 
跟放 1,2,3,4,5,6,7,8,9 到格里是一样的。

a. 5 是中间数,确定要放中间格里。
b. 1 和 9 必须在一行,2 和 8 必须在一行,3 和 7, 4 和 6 在一行
c. 9 和 8,7, 6 不能在同一行,因为 9 + 8, 9+7, 9+6 >=15, 不能再放第三个数了。
d. 同理,8+7=15, 不能放第三个数,所以不能在同一行
e. 8+6=14, 可以在同一行,但另一个数必须是 1。 8+6+1=15
f. 7 和 6 可以在同一行,但另一数字必须是2: 7+6_2=15
g. .....

太麻烦了,自己想吧
 
public class magic_squre_odd {
static int[][] matrix;
static int n;
public static void magic_squre_odd_generate()
{ matrix = new int[n][n];
//所有的數初始化為0

matrix[0][(n-1)/2] = 1;
int x = 0,y = (n-1)/2;

//count:記住已經插入過的數
for(int count = 2; count<=n*n;count++)
while(true)
{
//先x-1 y+1
x--;
y++;

//判斷是否可以插入
while(true)
{//循環判斷是否越界,直到一個地方不越界為止
//判斷是否越界:
//越上界x<0,則移到最下方x=x+n,y不變; continue
if(x<0)
{
x += n;
continue;
}

//越右界y>=n,則y=y-n,x不變;continue
if(y>=n)
{
y -= n;
continue;
}

//循環判斷是否該位置已經有數據,直到找到一個空位
//如果有數據,則移到x = x + 2;y = y - 1; continue
if (y<0){y+=n;continue;}
if(matrix[x][y] != 0 )
{
x += 2;y -= 1;
if (x>=n){x-=n;continue;}
if (y<0){y+=n;continue;}
continue;
}
break;
}

//將當前的count值賦給選出的空位
matrix[x][y]= count;
break;
}
}

public static void print()
{
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
{
//System.out.println(matrix[j]);
System.out.print(matrix[j]);
System.out.print("_");
}
System.out.println();
}
}

public static void main(String[] args)
{ //手工輸入n的值,並確保為奇數
n = 11;
magic_squre_odd_generate();
print();
}
}
 
后退
顶部