文档章节

问题求解——数学黑洞1

zengxiangwei
 zengxiangwei
发布于 2013/10/24 12:44
字数 516
阅读 108
收藏 1
点赞 0
评论 0
/*******************************************************



1. 设定一个任意数字串,数出这个数中的偶数个数,奇数个数,

及这个数中所包含的所有位数的总数,将答案按 “偶-奇-总”

的位序,排出得到新数。重复进行,最后会得到 123。

分析:

  对任意的n位数,n > 3,那么它会他形成的新数,会比原来的数

小得多,如两百位的数,演变成的数最多不会超过9位,

设 数m的位数为n,n> 3时,演变成的数不会超过n的位数K的3倍

t = m/(10^n)   (1=<t <10;  )

tt = n/(10^k)     (1<=tt<10)

令t = tt; m =t*10^n  n = t*10^k

n = log(m/t) =>  n =log(m)

k = log(n) ;

当m大于等于1000时,n = log(m)>=3; k=log(n)

log(m) + 1 > 3(log(n) +1)

所以任意大于等于1000的数必将收敛在1000以内

故而只需验证1000以内的数即可;

如:32165489012347652348976523425423  ——> 171431 ——>156——>123

*********************************************************/
/***********************************************************
Copyright (c)哈尔滨工程大学  曾相未  保留所有权利。

文件名: Test_5_1.java

描述: 问题求解——数学黑洞
作者: 曾相未
时间:2013/10/24
*************************************************************/

class Test_5_1{
	//求演变的下一个数
	int newNumber(int oldNum){
		int odd = 0;//奇数计数
		int even = 0;//偶数计数
		int t = oldNum;
		int tt;
		while(true)
		{
			tt = t % 10;
			if(tt % 2 == 0) even ++;
			else odd++;
			t = t / 10;//下一位数
			if(t == 0) break;//统计完毕,退出
		}
		tt = odd + even;//数的总数
		t = even * iCRight(odd) + odd;//将奇数个数写在偶数后面形成新数
		t = t * iCRight(tt) + tt;//将数总的个数写在奇数后面形成新数
		return t;	
	}
	//计算当前数占位,便于将其写在其它数后
	int iCRight(int num){
		int t = num;
		int result = 1;//至少占一位
		while(true)
		{
			t = t / 10;//下一位
			if( t == 0) return result * 10;
			result = result * 10;//位权计算
		}
	}


	public static void main(String []args){
		Test_5_1  test =  new Test_5_1();
		//验证 1000以内的正整数
		for(int j = 1; j < 1000;j ++)
		{
			System.out.print(j + ":  ");
			int midbody = j;//代换变量
			while(true)
			{
				System.out.print(midbody + "  ");
				if(midbody == 123) break;//到123 ,该结束了
				midbody = test.newNumber(midbody);
			}
			System.out.println();
		}
	}
}

© 著作权归作者所有

共有 人打赏支持
zengxiangwei
粉丝 8
博文 14
码字总数 18050
作品 0
郑州
程序员
砝码分盐问题——从数学和计算机的角度分析(7)

本博客(http://blog.csdn.net/livelylittlefish)贴出作者(阿波)相关研究、学习内容所做的笔记,欢迎广大朋友指正! Content 0.问题 1.一些方法 2.从数学的角度分析 3.能否编程计算? 4....

晨曦之光
2012/03/09
58
0
【机器学习经典算法】真正的SVM简明(傻瓜)教程!

前言,一些必要的说明 如果你精通机器学习算法,或高数极好,热爱数学推理和公式——那么这篇文章不适合你。写这篇的初衷是:SVM是一个经典的机器学习算法,在面试里也经常被考到,所以我希望...

京酱玫瑰
07/09
0
0
如何理解磁力

电场与磁场都是电荷产生的,其大小和方向都与距离电荷的远近有关,也都与电荷的大小有关,所不同的是,磁场还与电荷的运动速度有关。另外,电磁与磁场能够互相产生对方。从三维空间的观点看,...

天蚕宝衣
2016/09/17
14
0
走向抽象——伽罗瓦理论

  最古老的数学问题   在数学史上,一个最古老也最自然的问题是:求解一元多项式的根。二次多项式的根可以很容易地写成,我们每个人在中学都见过其系数的根号表达式。二次多项式的解最早...

原理
02/20
0
0
计算机科学中最重要的32个算法

转载:http://www.infoq.com/cn/news/2012/08/32-most-important-algorithms 奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自......

Nov_Eleven
2013/06/23
0
0
计算机科学中最重要的32个算法

奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调查,参与者大多数是计算机科学家...

大数据之路
2012/09/05
0
0
朴素贝叶斯法学习笔记

朴素贝叶斯法学习笔记 前言 最近开始学习《统计学习方法》中的朴素贝叶斯,朴素贝叶斯是在贝叶斯的基础上为了简化问题而做出的一种朴素假设。因此,想要理解朴素二字的含义必须先明白什么是贝...

u014688145
2016/11/16
0
0
机器学习(一) ---- 最优化理论基础

之前学习机器学习和数据挖掘的时候,很多都是知道这些算法的设计机制,对数学推导和求解过程依然是一知半解,最近看了一些机器学习算法的求解和各种优化算法,也发现了这些算法设计和公式推导...

云栖希望。
2017/12/04
0
0
干货丨一份机器学习的初学者指南

机器学习: 引言 听过人们谈论过机器学习,但对它的概念却是一知半解? 想要从零开始机器学习,却被网络上的海量资源冲昏头脑? 不用担心,我们给你们提供了机器学习从0到1系列,这个系列可以让...

r1unw1w
04/11
0
0
机器学习算法——感知机&支持向量机

1前言 本篇博客主要详细介绍两种具有一定相似性的机器学习算法——感知机Perceptron和支持向量机SVM,该两种算法都是在特征空间中寻找划分平面从而对数据集进行划分的思想,但寻找划分平面的...

u014732537
05/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

对基于深度神经网络的Auto Encoder用于异常检测的一些思考

一、前言 现实中,大部分数据都是无标签的,人和动物多数情况下都是通过无监督学习获取概念,故而无监督学习拥有广阔的业务场景。举几个场景:网络流量是正常流量还是攻击流量、视频中的人的...

冷血狂魔
20分钟前
0
0
并发设计之A系统调用B系统

A-->B A在发送请求之前,用乐观锁,减少对B的重复调用,这样一定程度上是幂等性。 比如A系统支付功能,要调用B系统进行支付操作,但是前端对"支付"按钮不进行控制,即用户会不断多次点击支付...

汉斯-冯-拉特
41分钟前
0
0
HTTP协议通信原理

了解HTTP HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务。 HTTP使用...

寰宇01
今天
0
0
【Java动态性】之反射机制

一、Java反射机制简介

谢余峰
今天
1
0
Centos 6.X 部署环境搭建

1.Linux学习笔记CentOS 6.5(一)--CentOS 6.5安装过程

IT追寻者
今天
0
0
博客即同步至腾讯云+社区声明

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=8vy9bsmadbko...

xiaoge2016
今天
1
0
大数据教程(3.1):Linux系统搭建网络YUM源服务器

博主在前面的2.5章节讲述了linux系统本地YUM服务器的搭建和httpd轻量级静态网站服务器的安装,本节博主将为大家分享内网环境中搭建自己的网络YUM服务器的全过程。如果大家对本地YUM服务器还不...

em_aaron
今天
1
0
蚂蚁技术专家:一篇文章带你学习分布式事务

小蚂蚁说: 分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在这几年越来越火的微服务架构中,几乎可以说是无法避免,本文就围绕分布式事务...

Java大蜗牛
今天
1
0
新的Steam应用将拓展服务项目

导读 未来几周,Steam将推出两个免费的应用程序Steam Link和Steam Video。这两个应用程序都旨在拓展Steam平台的业务和便利性。 即将开放的Steam Link应用程序最先提供了Android测试版,它将允...

问题终结者
今天
0
0
golang 第三方包的使用总结

golang 第三方包的安装的方法: 1. go get 安装 $ go get github.com/gin-gonic/gin 注意:执行go get 命令需要先安装git命令,并配置git全局变量。 2. 源码包安装 由于国内网络问题,很多时...

科陆李明
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部