用php解决一个数学题【已有很多高手解决,期待更好的算法的出现】

http://www.111cn.net/html/00/54500_itemid_29653.html

一个六位数,当分别用2,3,4,5,6乘它后,得到的五个乘积都是一个六位数,而且这得到的五个数是由原来六个数字组成,只是顺序改变了!
求高手帮助解决下!

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

貌似大家都默认了一个现象
http://www.111cn.net/viewthread.php?tid=54377&page=5

之前提出的一个假设 貌似大家做算法的时候都不考虑这种情况的存在可能 如果哪位有论证过这种假设不成立或者楼主的题目本身就默认不考虑这种假设 请大侠们说明一下

如果没有论证或者题目没有明确说明不考虑这种假设 算法设计再好也是不合题意的无效算法

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

写了两种算法:
第一种思路是判断相乘的数的各个位之和是否相等,不过效率不太好。
第二种算法换了一种思路,用了字符反方向验证,因为正向会有一部分高位的不必要的运算。代码很简洁,效率很不错,附上代码:

第一种算法,判断各个位数之和:

===========================================================

第二种算法,字符反方向查询:

第一个算法在我的PE2140@2.66GHz上需要440ms,第二种只需要180ms。

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

我之前提过这个问题了http://www.111cn.net/bbs/thread-54377-2-1.html

解决的方法有一个:
得出每一位,逐个位排除.
如得两个位数相同,则两个同时删除或更改.
比如:
''123451''和''123456''
逐位删除或更改的话,剩下的一位就不等了.

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

for($i = 100000;$i < 166667;$i++)  //数的范围
{
....
        for($ii=2;$ii<7;$ii++)  // 2-6的倍数
        {
.....
                for($j=0;$j<6;$j++)           //数的个数
                {
if(strpos($i,substr($i*$ii,$j,

时间: 2024-09-30 16:58:04

用php解决一个数学题【已有很多高手解决,期待更好的算法的出现】的相关文章

大家好,帮忙解决一个jqGrid编辑问题,急需解决。。。

问题描述 我现在想实现一下功能,colModel=[{name:'domainAddress',index:'domainAddress',width:170,editrules:{required:true},align:"center",editable:true},{name:'applyInfo',index:'applyInfo',width:120,align:"center",sortable:false,editable:true},想让'domai

“电源已接通 未充电”解决方法

有的朋友在使用笔记本电脑时可能遇到过这样的情况笔记本"电源已接通 未充电".这是怎么回事呢,如何解决这样的情况.下文是解决这个问题的一些方法. 情况一:查看是否禁用了充电功能 有的笔记本在电池选项里有一个"禁止充电"的功能,这个功能下面适配器直接给笔记本供电而不给电池充电,在这种情况下是充不 进电的.建议检查一下电池选项,看看是否禁用了笔记本的充电功能. 更新 BIOS或能解决充电问题 假如经过测试,知道电池.适配器都没问题,那就更新一下BIOS吧.更新BIOS也许

XP连接VPN提示“错误633:调制解调器已在使用”如何解决

XP连接VPN提示"错误633:调制解调器已在使用"如何解决   方法如下: 1.同时按下Win+R组合键(Win是Alt旁边的微软图标键),在运行窗口中输入regedit.exe,点击确定; 2.在注册表左侧依次点开:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters; 3.选中Parameters,点击上面菜单的"编辑",新建一个"多字符串值"项目,然后命名为Res

开机时Windows资源管理器已停止工作怎么解决?

开机时Windows资源管理器已停止工作怎么解决?    工具/原料 一台电脑 Windows资源管理器 方法/步骤 首先点击对话框中的"关闭程序",不用Windows自动地联机检查解决方案,因为它压根什么都解决不了. 同时按住"Ctrl"+"Alt"+"Del"键,这时候电脑上的Windows资源管理器会出现,点击五个选项中的最后一个"启动任务管理器(T)",这时候会蹦出来一个Windows资源管理器的对

Win7系统使用IE浏览器弹出“无法打开internet站点 已终止操作”的解决方法

  windows操作系统内置有IE浏览器,也是我们使用的最多次的浏览器之一了,但有时win7纯净版系统在使用IE浏览器过程中,也会遇到各种问题.比如最近我们打开网页时,会弹出一个提示框"Internet Explorer无法打开Internet 站点about:blank.已终止操作",遇到这样问题该如何解决呢?带着此问题,下面小编和大家分享具体的解决方法. 方法如下: 一.重置IE 方法原理:重置IE,把篡改的错误设置全部清除,恢复干净的IE设置. 注意事项:重置IE后,里面的有部

win7系统下提示&quot;部分便笺的元数据已被损坏&quot;的解决方法

  虽然win7系统有很多功能,而且服务组件也很多,这是他的优点,但是有时也是导致一些系统故障的"元凶".这些组件的损坏很可能导致win7旗舰版电脑无法开机,系统无法正常登陆,但是有些文件的出现则只会导致部分的功能无法使用.这些故障都是由于组件的损坏导致的.但是像这样大的故障不会经常出现,只是会有一些小的问题比如:win7旗舰版电脑开机出现"部分便笺的元数据已被损坏"错误,这个问题不会影响正常的电脑操作,但是一旦用到便签功能势必会受到影响,所以下面就看看小编怎么解决

爱思助手打不开、已停止工作的解决方法

爱思助手打不开.已停止工作的解决方法   爱思助手已停止工作 爱思助手打不开.已停止工作的原因: 爱思助手与itunes之间产生了软件冲突,急于解决这类问题的话,小编有个好方法教给你. 爱思助手打不开.已停止工作的解决方法: 大家可以下载最新版的爱思助手,然后删了itunes11.1,重新安装到另一个盘,不要跟爱思一个盘就行了. 这类由于软件冲突的问题,爱思助手官方表示会尽快解决,请大家耐心等待.

聊天-Android开发中遇到了一个问题,求大神解决下。

问题描述 Android开发中遇到了一个问题,求大神解决下. 我现在将别人写好的聊天软件,根据我自己的需要,剔除了很多不用的activity和功能,然后当成Library.我遇到的问题是,我现在只有进入到这个聊天界面才能够收到信息和来信息的提示,如果我不进入,我就没法得到来消息的提示,请问我该怎么解决呢? 解决方案 就想QQ的离线消息一样?后台起一个Service接收信息,有信息了就在消息通知栏里放一个消息. 解决方案二: 这个问题可能涉及到通知提醒的内容,建议你先看一下android是如何实现

死锁问题-事务(进程ID54)与另一个进程已被死锁在通信缓冲区上,且该事务已被选作死锁牺牲品。请重新运行该事务。

问题描述 事务(进程ID54)与另一个进程已被死锁在通信缓冲区上,且该事务已被选作死锁牺牲品.请重新运行该事务. 在对一张表进行查询操作的时候,数据库被进行了分离操作,结果分离失败,显示如题错误.后来数据库被迁移到另一台服务器上,再次对该表查询的时候,又显示如题错误,请问有什么办法可以解决这个死锁问题? 解决方案 http://blog.csdn.net/anbs01/article/details/5563243 解决方案二: --检测死锁 --如果发生死锁了,我们怎么去检测具体发生死锁的是哪