初等数学导论:传球游戏

本文介绍了初等数学中的一种传球游戏问题,分析了N个人传球,每次向左传给第K个人的情况。当N和K互质时,才能确保在第一个人再次拿到球之前每个人都拿到过球。给出了解决该问题的Java实现,通过计算欧几里得算法求最大公约数(gcd)来确定符合条件的K值。
摘要由CSDN通过智能技术生成
/*
 *CopyRight (C)2014, Saluton+, All Rights Reserved.
 *Filename:PassingBallGame.java
 *Author: Saluton+    Version: 1.0    Date: 2014.08.09
 *Description: 初等数学导论
 *	题目描述:N个人玩传球游戏,开始时第一个人拿着球,每个人把球传给左手边的第K个人。
 *	满足1<= K<= N/2。求K 的最大值,使得第一个人重新拿到球之前每个人都拿到过球?
 *	解题思想:基于这样的一个事实:如果N和K不是互质数,存在公约数d且d不为1,那么经过
 *	(N/d)次传球后,球将重新回到第一个人手中。但是此时(N/d)<N,即球并非被传到了所有
 *	手中。由此可知,如果要满足游戏规则,则gcd(N,K)= 1。
 */
 public class PassingBallGame{
	private int n;
	private int k = 1;
	
	public PassingBallGame(){
	}
	
	public PassingBallGame(int n){
		this.n = n;
	}
	
	public int getK(){
		return this.k;
	}
	
//	public void calculateValueOfK(){
//		for(int i = n / 2; i > 1; i--){
//			if(gcd(i, n) == 1){
//				k = i;
//			}
//		}
//	}
//	
//	public int gcd(int a, int b){
//		if( a != 0){
//			wh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值