。。。数学老师死的早

陈小轩 发布于 2013/08/14 17:27
阅读 1K+
收藏 3
今天的面试题。。。>_<,这个没写出来 一个家伙年龄的3次方为4位数,4次方为6位数,两数刚好用到0-9中所有10个数字,问这鸟人年龄,求答案 [
加载中
0
陈小轩
陈小轩
今天面试后感觉很舒畅,就4道数学题,做完后脑袋里的压力全无,心情好多了
0
ddatsh
ddatsh
纸上从5数到几十?
陈小轩
陈小轩
我是从10开始。。。限定了范围。。最后放弃了
0
ddatsh
ddatsh
它的三次方是一个四位数,10^3=1000,21^3=9261,所以岁数在10~21之间;
四次方是一个6位数,18^4=104976;31^4=923521 ,所以岁数在18~31之间
岁数在18~21之间
因此,岁数是18岁
搜的,数学也不好
xesam
xesam
个位是0,1,5的首先被排除,然后19^4的个位是1,最高位肯定也是1,也排除,就剩下18了。
polly
polly
有这个思路就齐了,不是真让你去算数字。
陈小轩
陈小轩
突然发现,这和高深数学毛关系啊(除了取个交际),完全初中生也可以,就是个思维问题,还有懒不懒肯不肯算的问题,我实在太弱了,第一次审题审错了- -
无争
无争
正解
陈小轩
陈小轩
我也是。。。
0
月影又无痕
月影又无痕

结果,这个人的年龄是18,这个需要使用穷举法解方程即可,php运行用时1毫秒

<?php
for($i=1;$i<200;$i++) {
    $a = pow($i,3);
    $b = pow($i,4);
    
    if(strlen($a) == 4 && strlen($b) == 6) {        
        $z = "$a$b";
        preg_match_all("/(\d)/",$z,$r);
        $n = array_unique($r[1]);
        if(count($n)==10) {
            echo "$i $a $b ";
        }
    }
}

铂金小虫
铂金小虫
正则那步没意义吧。
陈小轩
陈小轩
好厉害,这个$r[1]啥意思,没学过php。。。知道程序意思了,用正则匹配出数字数组,判断每个是否唯一
0
月影又无痕
月影又无痕

$r[1] 表示正则表达式中第一个括号中的所有值(是数组),array_unique是去掉数组中重复的值,然后再计算去重复后的元素个数若为10,就满足条件。

计算机解方程的常用思路就是穷举法,利用其高速运算的特点。

0
random_walk
IdleMan
IdleMan
每次你的回复都是那么亮
0
陈小轩
陈小轩
是咱太弱了。。。>_<
0
月影又无痕
月影又无痕

另外,给一个九宫格的计算源码,1-9数字,不重复地排成三行三列,要求每一行,每一列,斜角线之和为15,在旧版射雕英雄传中,瑛姑花15年没解出结果,咱用程序可求解:

<?php

$r = range(1,9);

while(true) {
    shuffle($r);
    if(($r[0] + $r[1] + $r[2]) == 15 //第一行
              && ($r[3]+$r[4] + $r[5])==15 //第二行
              && ($r[6]+$r[7] + $r[8])==15 //第三行
              && ($r[0]+$r[3] + $r[6])==15 //第一列
              && ($r[1]+$r[4] + $r[7])==15 //第二列
              && ($r[2]+$r[5] + $r[8])==15 //第三列
              && ($r[0]+$r[4] + $r[8])==15 //左上--右下对角线
              && ($r[2]+$r[4] + $r[6])==15 //右上--左下对角线
              )
    
    {        
        foreach($r as $i => $n) {
            echo "$n\t";
            if( ($i+1)%3 == 0) {
                echo "\n";
            }
        }
        
        break;    
    }
}


结果:

2       9       4
7       5       3
6       1       8


小虫0302
小虫0302
穿越过去卖给莺姑。。。带回她的九尾灵狐。。。
陈小轩
陈小轩
不得不说,有时候穷举法很不错。
0
首席安全砖家
首席安全砖家
数据老师死得早
习总
习总
还有数据老师这一说~
0
火星怪物
火星怪物
public static boolean isRight(int i) {
        boolean isRight = false;
        long firstNum = (long) Math.pow(i, 3);
        isRight = String.valueOf(firstNum).length() == 4;
        if (!isRight) {
            return false;
        }
        long secondNum = (long) Math.pow(i, 4);
        isRight = String.valueOf(secondNum).length() == 6;
        if (!isRight) {
            return false;
        }
        String a = String.valueOf((long) firstNum);
        String b = String.valueOf((long) secondNum);
        String all = a + b;
        for (int j = 0; j <= 9; j++) {

            if (!all.contains(String.valueOf(j))) {
                return false;
            }
        }
        System.out.println(all);
        return true;
    }

    public static void main(String[] args) {
        for (int i = 1; i < 100; i++) {
            boolean isRight = isRight(i);
            System.out.println(i + " " + isRight);
            if (isRight) {
                break;
            }
        }
    }
返回顶部
顶部