小编qua*_*oup的帖子

Python中的最大递归深度是多少,以及如何增加它?

我在这里有这个尾递归函数:

def recursiveFunction(n, sum):
    if n < 1:
        return sum
    else:
        return recursiveFunction(n-1, sum+n)

c = 998
print(recursiveFunction(c, 0))
Run Code Online (Sandbox Code Playgroud)

它可以工作到n = 997,然后它就会中断并吐出"比较时超出的最大递归深度" RuntimeError.这只是一个堆栈溢出?有办法解决它吗?

python recursion

357
推荐指数
13
解决办法
40万
查看次数

"反向"统计:根据均值和标准差生成数据

拥有数据集并从中计算统计数据很容易.反过来怎么样?

假设我知道某个变量具有平均X,标准偏差Y并假设它具有正态(高斯)分布.生成适合分布的"随机"数据集(任意大小)的最佳方法是什么?

编辑:这种发展从这个问题 ; 我可以根据这种方法制作一些东西,但我想知道是否有更有效的方法来做到这一点.

language-agnostic statistics

13
推荐指数
2
解决办法
3万
查看次数

有没有更有效的方法在Perl中生成随机文件?

这是我的第一个Perl脚本.曾经:

#!/usr/bin/perl

if ($#ARGV < 1) { die("usage: <size_in_bytes> <file_name>\n"); }

open(FILE,">" . $ARGV[0]) or die "Can't open file for writing\n";

# you can control the range of characters here
my $minimum = 32;
my $range = 96;

for ($i=0; $i< $ARGV[1]; $i++) {
    print FILE chr(int(rand($range)) + $minimum);
}

close(FILE);
Run Code Online (Sandbox Code Playgroud)

其目的是生成一个填充了随机字符的指定大小的文件.

它工作但很慢.写一个10MB的随机文件需要几秒钟.
有没有人有关于如何更快/更好的建议/提示?也可以随意指出常见的新手错误.

random perl file-io

6
推荐指数
2
解决办法
3950
查看次数

寻找猫王?:

我的任务是找到猫王(使用eclipse搜索).有没有我可以用来找他的正则表达式?

"Elvis Operator"(?:)是Java三元运算符的缩写.

我试过\?[\s\S]*[:]但它与多线不匹配.
有没有这样的重构我可以将Elvis变成if-else块?

regex

5
推荐指数
1
解决办法
1872
查看次数

关于项目规划的建议?

这不是一个编程问题本身,但在这里.我是一名高级CS本科生,今年夏天我开始为一家中型软件公司实习.我以前做了一些自由职业,但这是我第一次正式(或多或少)被聘为软件开发人员.

我被要求从头开始编写一个内部网站供公司的不同团队使用,并且我在设计它时获得了很大的灵活性.而问题正在于此:我们对事情应该如何工作的几个会议和设计审查,每个人都似乎有一个新功能的想法,甚至是相互矛盾的观点.

到目前为止,我的初始原型已经存活了所有这些,这是我被告知不会期望的 - 但我知道我有一个坚实的设计.虽然我没有落后于计划,但工作进度明显慢于我的预测.其中很多都与松散的规范和常量功能请求和更改有关.

我部署在几个星期,我认为不会是一个问题的alpha,但事情的方式会我不知道这是怎么去上班了.

有没有人有任何想法?提前致谢

project-planning

5
推荐指数
1
解决办法
483
查看次数

在C++类中重新声明一个函数

class arbit
    {
        int var;
        public:

        int method1();
        int method1() const;

    };
Run Code Online (Sandbox Code Playgroud)

为什么g ++在这里两次声明相同的函数时不会发出警告?

c++

5
推荐指数
1
解决办法
167
查看次数

使用Spring的JPA手动事务服务和DAO层

我正在使用JPA和Spring.如果我让Spring处理事务,那么假设EntityManager已正确注入DAO,这就是我的服务层的样子:

MyService {

   @Transactional
   public void myMethod() {
       myDaoA.doSomething();
       myDaoB.doSomething();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我要手动执行事务,我必须确保将EntityManager的实例传递到事务中的每个DAO中.任何想法如何更好地重构?我很难做新的MyDaoA(em)或将em传递给每个DAO方法,如doSomething(em).

MyService {

   private EntityManagerFactory emf;

   public void myMethod() {
       EntityManager em = emf.createEntityManager();
       EntityTransaction tx = em.getTransaction();
       MyDaoA myDaoA = new MyDaoA(em);
       MyDaoB myDaoB = new MyDaoB(em);
       try {
           tx.begin();
           myDaoA.doSomething();
           myDaoB.doSomething();
           tx.commit();
       } catch(Exception e) {
           tx.rollback();
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

java spring hibernate jpa transactions

5
推荐指数
1
解决办法
6805
查看次数

运行具有外部依赖项的Scala脚本

我在/Users/joe/.scala/lib下面有以下jar:

commons-codec-1.4.jar       
httpclient-4.1.1.jar        
httpcore-4.1.jar
commons-logging-1.1.1.jar   
httpclient-cache-4.1.1.jar  
httpmime-4.1.1.jar
Run Code Online (Sandbox Code Playgroud)

下面是我用scala编写的test.sh.

#!/bin/sh -v
L=`cd /Users/joe/.scala/lib;pwd`
cp=`echo $L/*.jar|sed 's/ /:/g'`
echo $cp
exec scala -classpath $cp $0 $@
!#
println(new org.apache.commons.httpclient.HttpClient())
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

$ ./test.sh 
#!/bin/sh -v
L=`cd /Users/joe/.scala/lib;pwd`
cd /Users/joe/.scala/lib;pwd
cp=`echo $L/*.jar|sed 's/ /:/g'`
echo $L/*.jar|sed 's/ /:/g'
echo $cp
/Users/joe/.scala/lib/commons-codec-1.4.jar:/Users/joe/.scala/lib/commons-logging-1.1.1.jar:/Users/joe/.scala/lib/httpclient-4.1.1.jar:/Users/joe/.scala/lib/httpclient-cache-4.1.1.jar:/Users/joe/.scala/lib/httpcore-4.1.jar:/Users/joe/.scala/lib/httpmime-4.1.1.jar
exec scala -classpath $cp $0 $@
/Users/joe/Desktop/scala/./test.sh:7: error: object httpclient is not a member of package org.apache.commons
println(new org.apache.commons.httpclient.HttpClient())
                               ^
one error found
Run Code Online (Sandbox Code Playgroud)

但是,没有任何类路径依赖关系的简单工作虽然:hello.sh

#!/bin/sh
exec scala "$0" "$@"
!#

println(new java.util.Date())
Run Code Online (Sandbox Code Playgroud)

知道我在第一个例子中做错了什么吗?或者,在使用scala脚本时,设置类路径依赖关系的最佳方法是什么?

java bash scripting jvm scala

5
推荐指数
2
解决办法
2521
查看次数

在MySQL中存储多对多关系的最佳方式?

假设我有一个包含表'posts'和'tags'的简单数据库.帖子可以有很多标签,标签可以属于很多帖子.

构建数据库的最佳方法是什么?我想过使用list/serialize:

tags
idx tag_id, str tag_name

posts
idx post_id, str title, list tag_ids
Run Code Online (Sandbox Code Playgroud)

或者有另一个表与关联.问题是使用这个我甚至不知道如何构建查询以在我收到帖子时提取相关的标签名称.

posts
idx post_id, str title

post_tags
fk post_id, fk tag_id
Run Code Online (Sandbox Code Playgroud)

其实我不喜欢他们中的任何一个.有没有更好的办法?

mysql database database-design data-modeling

4
推荐指数
1
解决办法
3132
查看次数

PHP:命名参数/数组的语法不那么难看?

这就是我想要完成的事情:

function foo($args) {
 switch($args['type']) {
  case 'bar':
  bar($args['data']);   // do something
  break;
 }
}

// or something like that
Run Code Online (Sandbox Code Playgroud)

这基本上是在PHP 中使用命名参数的一种方式.

现在,为了构建这个$args数组,我被迫编写丑陋的语法,如:

$builtArgs = array('type' => 'bar',
     'data' => array(1, 2, 3),
     'data2' => array(5, 10, 20)
  );

foo($builtArgs);
Run Code Online (Sandbox Code Playgroud)

当我向数组中添加更多维度时,这会变得更加丑陋,并且还迫使我编写大量的array(...)构造.有更好的方法吗?

首先,如果我们可以使用类似Python的语法,就可以完成:

$buildArgs = {'type' : 'bar', 'data' : [1, 2, 3], 'data2' : [5, 10, 20]};
Run Code Online (Sandbox Code Playgroud)

但它是PHP.

php syntax coding-style

3
推荐指数
1
解决办法
1031
查看次数

在PHP中模拟ruby的inject()行为

这里的这个问题来看,我正在编写一个枚举包装器,以便有一些方法可以与lambdas一起使用,以在某种程度上模拟ruby在枚举中对块的使用.

class enum {
    public $arr;

    function __construct($array) {
        $this->arr = $array;
    }

    function each($lambda) {
        array_walk($this->arr, $lambda);
    }

    function find_all($lambda) {
        return array_filter($this->arr, $lambda);
    }

    function inject($lambda, $initial=null) { 
        if ($initial == null) { 
            $first = array_shift($this->arr); 
            $result = array_reduce($this->arr, $lambda, $first); 
            array_unshift($this->arr, $first); 

            return $result; 
        } else { 
            return array_reduce($this->arr, $lambda, $initial); 
        } 
    } 

}


$list = new enum(array(-1, 3, 4, 5, -7));
$list->each(function($a) { print $a . "\n";});

// in PHP you can also assign …
Run Code Online (Sandbox Code Playgroud)

php closures

3
推荐指数
1
解决办法
547
查看次数

处理丢失的数组偏移量

考虑以下代码:

$tests = array( 
array ("a", "b", "c"),  array ("1", "2", "3"), array ("!", "@")
);

foreach ($tests as $test) 
 test($test[0], $test[1], $test[2]);

function test($param1, $param2, $param3) {
 // do whatever
}
Run Code Online (Sandbox Code Playgroud)

这将无问题,直到它到达$ test [2],当然在数组中没有第三个元素,导致PHP吐出:

Notice: Undefined offset: 2
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个问题:

foreach ($tests as $test) {
 if (count($x) == 2) 
  test($test[0], $test[1]);
 else 
  test($test[0], $test[1], $test[2]);
}

function test($param1, $param2, $param3=null) {
 // do whatever
}
Run Code Online (Sandbox Code Playgroud)

随着每个$ test数组的大小变大,这变得笨拙.或者我应该忽略通知呢?

编辑:这是我实际上要做的事情:

// wanted this:
function validate() {
    $pass = true;
    $rules = …
Run Code Online (Sandbox Code Playgroud)

php

2
推荐指数
1
解决办法
128
查看次数

将数组转换为PHP代码

在上一篇关于数组更好的语法的文章之后,我决定对数组使用JSON格式,并使用一种将其转换为PHP代码的方法。

请注意,此方法的最终目标是用JSON编写$ config数组并将其转换为PHP代码(因此,我可以避免使用PHP的丑陋数组语法):

该函数适用于任意大小和尺寸的数组,也许我可以通过使其自动缩进来改进它,但是没有更多的东西了。这里有人对如何改善它有任何建议吗?

php arrays metaprogramming

0
推荐指数
2
解决办法
2418
查看次数