一妻多夫制

在和一位朋友吃饭的时候,我得知了“走婚”这种社会现象。走婚是摩梭人的一种婚姻形式,男女在聚会上相互倾心,约好后,男子在半夜爬窗进入女子的“花楼”(摩梭成年女性的房间),早上再离开。他们采取母系社会的生活方式,没有嫁娶之说,让我耳目一新。

这种婚姻也算是一种民族特点吧,地理环境的多样性造就了生物的多样性,也造就了民族的多样性。我国民族众多,而又尤以西南地区的多样性最盛,最近正好在《中国国家地理》上又看到了西南横断山区的民族婚姻形态介绍。

文中说穿过横断山北部的草原,顺着雅砻江南下,一直到云南与四川接壤处的沪沽湖畔,一路上都可以见到“走婚”这种婚姻形态,除了走婚还有一种叫“钻帐篷”的婚姻形式。不知我的那位朋友旅游的地点是不是就是这其中之一。除了走婚、钻帐篷,这里还提到了一种“一妻多夫”的婚姻形式,比如在怒江上游的西藏昌都市左贡县东坝乡的一个村庄,全村几乎都是“一妻多夫”的家庭。

横断山区多民族聚居位置图——中国国家地理十月刊

尽管按照西方人类学、社会学的观点,这不能算是婚姻形态,因为家庭里没有姻亲,但是这种婚姻却维系了这一带人类族群的繁衍生息,维系了他们的社会运转。特殊的地理环境造就了特殊的社会现象,尽管我们可能会感到神奇,但是对于他们来说,这却再正常不过。好比我们古代的一夫多妻制,现在看来是不可取的,但是放到特定的历史背景下,又是有其存在的合理性。

在横断山区,由于山高谷深和干旱河谷的普遍存在,导致土地资源极其稀缺。应对这种环境的主要策略就是:不分家。无论是走婚、钻帐篷,还是一妻多夫,目的都是一个——不分家。

比如一妻多夫的这种婚姻形式,兄弟几个人娶一个妻子,这样一个大家庭就可以不分家,从而较好地适应了土地稀缺的这种现实。不分家,兄弟几人娶一个妻子,一是降低了人口增长率;二是一家人居住在一起减少了房屋聚落的土地占有;三是这里大多是半农半牧的地区,河谷农业耕作,山顶夷平面放牧,不分家较好地应对了这一环境,兄弟几人有的农耕、有的游牧,而一夫一妻制,一个家庭是无法应对这种半农半牧的生产方式的;四是不分家生产资料就不会分散,这对于生产极不发达的横断山区是很重要的。

妻子在给两位丈夫盛饭——中国国家地理十月刊

无论是走婚、钻帐篷,还是一妻多夫,或是一夫多妻,其实都算是对环境的适应,是发展的需要,其本质也还是为了族群尽可能的生存下去。所有的社会现象,寻其根源,大部分恐怕还是要追溯到经济问题上来,经济就是生存。

然而随着社会的发展,为什么一夫一妻制就成为了主流呢?大概是随着人类社会技术水平的发展,环境的制约作用越来越小的原因吧。此时的社会发展更多地取决于人类自身,男女的性别比例大体上是相当的,无论是一夫多妻还是一妻多夫,都会涉及到占据更多的社会异性资源,造成一种不平衡,久而久之就会形成不稳定因素,这应该是为了更好的发展采取的一种制度约束。

如今,随着与外界交流的不断深入,在现代化、全球化的冲击下,横断山区的这种一妻多夫制也渐渐地成为了历史。

转载于:https://my.oschina.net/bob1900/blog/2874046

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 尼科彻斯定理也叫做瓦德多夫定理,是一种关于整数的定理。它的表述形式是:一个正整数的立方可以表示为若干个连续奇数之和。 验证尼科彻斯定理的方法有很多,其中一种比较简单的方法是使用Java编程语言。 首先,我们需要定义一个方法,该方法的功能是接收一个正整数n,然后输出该整数的立方数以及表示该立方数的若干个连续奇数之和。 public static void verifyNicolasTheorem(int n){ int cube = n * n * n; // 求立方数 int sum = 0; // 记录连续奇数之和 int start = n * n - n + 1; // 求连续奇数的起始数 int end = n * n + n - 1; // 求连续奇数的结束数 for (int i = start; i <= end; i += 2) { sum += i; // 求连续奇数之和 } System.out.println(n + "的立方数为" + cube); System.out.println(n + "的若干个连续奇数之和为" + sum); } 然后,我们可以在主函数中调用该方法验证尼科彻斯定理。比如,我们可以验证10的立方数可以表示为由21、23、25、27、29、31、33、35、37、39这10个连续奇数之和: public static void main(String[] args) { verifyNicolasTheorem(10); } 执行该程序,输出结果如下: 10的立方数为1000 10的若干个连续奇数之和为1000 从输出结果来看,10的立方数确实可以表示为由21、23、25、27、29、31、33、35、37、39这10个连续奇数之和,即验证了尼科彻斯定理。 ### 回答2: 尼科彻斯定理是一种经典的数论问题,它可以被描述为:任何大于1的整数n都可以表示为3个整数a、b、c的立方和,即n = a³ + b³ + c³。 为了验证尼科彻斯定理,我们需要使用Java编写一个程序来解决这个问题。以下是一个Java程序来验证尼科彻斯定理: ```java import java.util.Scanner; public class NicomachusTheorem { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入一个大于1的整数:"); int n = scanner.nextInt(); int x, y, z; boolean flag = false; for (x = 1; x <= n; x++) { for (y = x; y <= n; y++) { for (z = y; z <= n; z++) { if (x*x*x + y*y*y + z*z*z == n) { flag = true; break; } } if (flag) break; } if (flag) break; } if (flag) { System.out.printf("%d = %d³ + %d³ + %d³\n", n, x, y, z); } else { System.out.println("找不到符合条件的a、b、c!"); } } } ``` 此程序首先要求用户输入一个大于1的整数n,然后寻找立方和为n的三个整数a、b、c。它使用三个嵌套循环来枚举a、b、c,并使用一个标志变量来指示是否找到立方和为n的a、b、c。如果找到了,程序会输出a、b、c的值,否则输出一条消息表示找不到符合条件的a、b、c。 编译并运行此程序后,我们输入一个大于1的整数来验证尼科彻斯定理,例如输入33,程序会输出以下消息: ``` 33 = 1³ + 2³ + 3³ ``` 可以看出,33确实可以表示为三个整数的立方和。同样地,我们可以输入其他整数来验证尼科彻斯定理。 ### 回答3: 尼科彻斯定理,又称费马定理,它是一个三角形内切圆的特殊性质。换句话说,设三角形ABC的内切圆圆心为O,半径为r,则有三条边长分别为a,b,c,可以得到以下公式: a+b>c a+c>b b+c>a 这些公式的总结称为三角形不等式。由于尼科彻斯定理在中学数学课程中被广泛解释和讲解,因此本文只关注于如何使用Java 7-9 中实现这个定理。 首先,我们将需要计算三角形的三个边的长度。对于这一目的,我们可以通过以下代码来实现: public class Triangle { private double a; private double b; private double c; public Triangle(double a, double b, double c) { this.a = a; this.b = b; this.c = c; } public double getA() { return a; } public void setA(double a) { this.a = a; } public double getB() { return b; } public void setB(double b) { this.b = b; } public double getC() { return c; } public void setC(double c) { this.c = c; } } 然后,我们需要实现三角形不等式的验证代码。这可以通过编写一个方法来实现,将上面创建的三角形作为参数传入: public static boolean verifyTriangleInequality(Triangle triangle) { double a = triangle.getA(); double b = triangle.getB(); double c = triangle.getC(); if (a + b <= c) { return false; } if (a + c <= b) { return false; } if (b + c <= a) { return false; } return true; } 最后,我们可以将这些代码组合在一起,以创建一个简单的命令行应用程序来验证尼科彻斯定理: public class Main { public static void main(String[] args) { Triangle triangle = new Triangle(3, 4, 5); if (verifyTriangleInequality(triangle)) { System.out.println("Triangle inequality holds"); } else { System.out.println("Triangle inequality does not hold"); } } public static boolean verifyTriangleInequality(Triangle triangle) { double a = triangle.getA(); double b = triangle.getB(); double c = triangle.getC(); if (a + b <= c) { return false; } if (a + c <= b) { return false; } if (b + c <= a) { return false; } return true; } } 以上代码将创建一个三角形,确保它符合尼科彻斯定理(即它是个有效的三角形),并输出结果。这证明了我们可以使用Java 7-9来验证尼科彻斯定理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值