问题列表 - 第17153页

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

随机播放列表算法

我需要以随机顺序从一个范围(例如从x到y)创建一个数字列表,这样每个订单都有相同的机会.

对于我用C#编写的音乐播放器,我需要这个,以随机顺序创建播放列表.

有任何想法吗?

谢谢.

编辑:我对更改原始列表不感兴趣,只需从随机顺序中的某个范围中获取随机索引,以便每个订单都有相同的机会.

这是我到目前为止所写的内容:

    public static IEnumerable<int> RandomIndexes(int count)
    {
        if (count > 0)
        {
            int[] indexes = new int[count];
            int indexesCountMinus1 = count - 1;

            for (int i = 0; i < count; i++)
            {
                indexes[i] = i;
            }

            Random random = new Random();

            while (indexesCountMinus1 > 0)
            {
                int currIndex = random.Next(0, indexesCountMinus1 + 1);
                yield return indexes[currIndex];

                indexes[currIndex] = indexes[indexesCountMinus1];
                indexesCountMinus1--;
            }

            yield return indexes[0];
        }
    }
Run Code Online (Sandbox Code Playgroud)

它正在工作,但唯一的问题是我需要在内存中分配一个大小为的数组count.我正在寻找不需要内存分配的东西.

谢谢.

c# algorithm smart-playlist playlist

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

初始化:T x(值)与T x =当值为T时的值

T x(value)通常是更好的选择,因为它将直接用值初始化x,而T x = value可能会创建一个临时值,具体取决于值的类型.在值为T类型的特殊情况下,我的猜测是表达式T x = value将始终产生一个复制构造函数调用.我对么?

我问过这个问题,因为我开始认为第一种语法太丑陋而且难以理解,特别是当值是函数调用的结果时.例如:

  • const std::string path(attributes.data(pathAttrib));
  • const std::string path = attributes.data(pathAttrib);

c++ initialization

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

从Java调用的Lisp代码

很长的故事:

我正在为我的功能编程课做一个项目,我想在Lisp中编写一个AI控制器,用于Mario AI竞赛.

我正在研究从Java调用Lisp代码的框架/库/方法,甚至更好的Lisp-Java互通.

我看过Jacol,但它已经老了,而且对我来说编译不好.

到目前为止,我最好的选择是:Jatha.它真的很整洁,虽然一些lisp构造尚未实现,但可以轻松定义自己的构造.例如,mapcarcond未实现.我已经实现了自己的mapcar,在Lisp中命名为mapp,如下所示:

(defun map* (f l r) 
  (if (null l)
      r
      (map* f (rest l) (cons (funcall f (first l)) r))))

(defun mapp (f l)
    (reverse (map* f l nil)))
Run Code Online (Sandbox Code Playgroud)

现在我有一个使用它的简单函数,例如,一个函数,它计算非线性列表中有多少个原子

(defun myfunc (l)
  (if (atom l)
      '1
      (apply '+ (mapp 'myfunc l)))) 

(myfunc '(6 2))
Run Code Online (Sandbox Code Playgroud)

这一切在clisp中运行正常 现在从Java调用Lisp代码我使用了Jatha.所有人要做的就是在java项目中导入Jatha库并加载一个像这样的lisp文件(ex):

import org.jatha.*;
import org.jatha.dynatype.*;

public class Main {

    public static …
Run Code Online (Sandbox Code Playgroud)

lisp java clisp jatha

11
推荐指数
2
解决办法
4514
查看次数

C++标准在哪里定义float类型的值范围?

据我所知,浮点值的形式为n*2 ^ e,其中

  • 浮点范围为n = - (2 ^ 23-1) - (2 ^ 23-1),e = -126 - 127,
  • 双范围是n = - (2 ^ 52-1) - (2 ^ 52-1),并且e = -1022-1023

我正在查看C++标准,但未能找到标准指定的位置,或者要求float,double和long double类型与其他(IEEE)标准中定义的范围相关联.我在3.9.1.8中找到的唯一相关内容是:

有三种浮点类型:float,double和long double.double类型提供至少与float一样多的精度,long double类型提供至少与double一样多的精度.float类型的值集是double类型的值集的子集; double类型的值集是long double类型的值集的子集.浮点类型的值表示是实现定义的.

并没有提到该类型提供的最小范围.

标准在何处/如何指定浮点类型的(最小?)值范围?或者编译器可以自由选择任何值范围并且仍然符合标准吗?

c++ floating-point double standards range

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

使Java运行时忽略serialVersionUIDs?

我必须使用大量已编译的Java类,这些类没有明确指定serialVersionUID.因为他们的UID是由编译器任意生成,其中很多需要的类的被序列化和反序列化最终导致例外,即使实际的类定义匹配.(当然,这是所有预期的行为.)

我回过头来修复所有这些第三方代码是不切实际的.

因此,我的问题是:有没有什么办法可以使Java运行时忽略在serialVersionUIDs差异,只有失败的时候有在结构上的实际差异进行反序列化?

java serialization serialversionuid

15
推荐指数
1
解决办法
9074
查看次数

是否有可能在PHP中过度使用后期静态绑定?

从5.3版开始,PHP支持静态方法的后期绑定.虽然这是一个无疑是有用的功能,但只有几种情况需要使用它(例如Active Record模式).

考虑这些例子:

1.便利施工人员(::create())

class SimpleObject
{
    public function __construct() { /* ... */ }

    public static function create()
    {
        return new static; // or: return new self;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果这个类可能被扩展(但是,它没有被同一个包中的任何类扩展),那么应该使用延迟静态绑定来使它更容易扩展(无需重写::create()方法,更重要的是,不必记住要做到这一点)?

注意:这个习惯用于解决在构造对象上调用方法的不可能性:new SimpleObject()->doStuff()在PHP中无效.


2.类常数

class TagMatcher
{
    const TAG_PATTERN = '/\<([a-z\-]+?)\>/i';

    private $subject;

    public function construct($subject) { $this->subject = $subject; }

    public function getAllTags()
    {
        $pattern = static::TAG_PATTERN;
        preg_match_all($pattern, $this->subject);
        return $pattern[1];
    }
}
Run Code Online (Sandbox Code Playgroud)

static::在此示例中使用的原因与前一个类似.它的使用只是因为这个类可以通过扩展它并覆盖常量来匹配不同形式的标签.


那么,要将它们全部包装起来,这些后期静态绑定的使用(以及类似的)是否过度杀伤?是否有明显的性能影响?此外,频繁使用后期绑定是否会降低操作码缓存的整体性能提升?

php late-binding late-static-binding

14
推荐指数
1
解决办法
2850
查看次数

在Django中获取唯一的外键?

假设我的模型看起来像这样:

class Farm(models.Model):
   name = ...

class Tree(models.Model):
   farm = models.ForeignKey(Farm)
Run Code Online (Sandbox Code Playgroud)

......我得到了QuerySet一些Tree物品.如何确定代表哪些农场QuerySet

python django django-models

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

如何用纯mysql做到这一点?

如果存在条件的mysql记录 - 更新它,否则创建新记录

mysql

0
推荐指数
1
解决办法
86
查看次数

为什么我得到SQLSyntaxErrorException - 遇到""?

这个方法不断在标题中抛出异常,我找不到原因,我通过连接创建了其他表,并且创建了所有引用的表.我正在使用嵌入式JavaDB.

private void createEvidenceTable() throws SQLException
{
    Statement evidenceTable = CONNECTION.createStatement();
    evidenceTable.execute("CREATE TABLE evidence("+
                            "evidence_id INTEGER NOT NULL PRIMARY KEY,"+
                            "date_added VARCHAR(6) NOT NULL,"+
                            "evidence_dated VARCHAR(6) NOT NULL,"+
                            "evidence_file varchar(20),"+
                            "evidence_text VARCHAR(10),"+
                            "source_location_id INTEGER,"+
                            "source_person_id INTEGER,"+
                            "evidence_type VARCHAR(20),"+
"CONSTRAINT evidence__location_source FOREIGN KEY(source_location_id) REFERENCES location_source,"+
"CONSTRAINT evidence_person_source FOREIGN KEY(source_person_id) REFERENCES person_source,"+
"CONSTARINT evidence_evidence_type FOREIGN KEY(evidence_type) REFERENCES evidence_types)");

}
Run Code Online (Sandbox Code Playgroud)

java jdbc

0
推荐指数
1
解决办法
192
查看次数