问题列表 - 第29153页

插入排序的反转!

这是我在维基百科网站上找到的一个问题(我想很好地学习排序算法)。无论如何,这是一个问题 - 你能向我解释一下如何展示它吗?

练习:假设 I 是数组 A 中的反转次数,则证明算法插入排序 (A) 的运行时间为 O(n + I)。

algorithm inversion

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

我可以使用Google Maps API显示自定义地图吗?

通过自定义地图,我的意思是自定义地图图块,如同映射另一个行星.我环顾四周但看不到任何资源指向如何在Google或任何网站上执行此操作.

我知道这是可能的,因为我之前在网站上已经看过它,但不幸的是,那个链接到THAT网站的网站已经关闭,所以我无法达到它.

google-maps

9
推荐指数
1
解决办法
8731
查看次数

在PHP中的子构造函数之前调用父构造函数

我想知道是否有可能在PHP的继承之前调用子__construct()之前的父__construct().

例:

class Tag {
     __construct() {
         // Called first.
     }
}

class Form extends Tag {
     __construct() {
         // Called second.
     }
} 

new Form();
Run Code Online (Sandbox Code Playgroud)

理想情况下,我可以在它们之间做点什么.如果这是不可能的,有没有替代方案,这将允许我这样做?

我想这样做的原因是能够加载一组特定于Form的标签可以在调用__construct()时使用的默认设置.

编辑:抱歉忘了添加这个..我宁愿不从子类调用父类.这只是因为它将一些私有数据(对于父级)暴露给子级,当您将其作为参数传递时

这就是我想要做的:

$tag = new Tag($privateInfo, $publicInfo);
$tag->extend(new Form()); // Ideal function, prob doesn't work with inheritance.
Run Code Online (Sandbox Code Playgroud)

Tag.php

class Tag {
     private $privateInfo;
     public $publicInfo;
     __construct($private, $public) {
         $this->privateInfo = $private;
         $this->publicInfo = $public;
     }
} 
Run Code Online (Sandbox Code Playgroud)

form.php的

class Form extends Tag {

     __construct() {
         echo $this->publicInfo;
     }
} 
Run Code Online (Sandbox Code Playgroud)

合理?

谢谢!马特穆勒

php oop inheritance

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

从DB模型中消除NULLable列的选项(为了避免SQL的三值逻辑)?

不久前,我一直在阅读CJ Date的SQL和关系理论一书.作者因批评SQL的三值逻辑(3VL)而闻名.1)

作者强调了为什么在SQL中应该避免使用3VL,但是他没有概述如果不允许使用可空列的数据库模型的样子.我已经考虑了一点,并提出了以下解决方案.如果我错过了其他设计选项,我想听听他们的意见!

1)日期对SQL 3VL的批评反过来也受到了批评:请参阅 Claude Rubinson撰写的这篇论文(包括CJ Date的原始批评).


示例表:

举个例子,请看下面的表,我们有一个可以为空的列(DateOfBirth):

#  +-------------------------------------------+
#  |                   People                  |
#  +------------+--------------+---------------+
#  |  PersonID  |  Name        |  DateOfBirth  |
#  +============+--------------+---------------+
#  |  1         |  Banana Man  |  NULL         |
#  +------------+--------------+---------------+
Run Code Online (Sandbox Code Playgroud)

选项1:NULL通过标志和默认值进行模拟:

不是使列可为空,而是指定任何默认值(例如1900-01-01).另一BOOLEAN列将指定是否DateOfBirth应该忽略值in 或者它是否实际包含数据.

#  +------------------------------------------------------------------+
#  |                              People'                             |
#  +------------+--------------+----------------------+---------------+
#  |  PersonID  |  Name        |  IsDateOfBirthKnown  |  DateOfBirth  |
#  +============+--------------+----------------------+---------------+ …
Run Code Online (Sandbox Code Playgroud)

sql null relational-database three-valued-logic

8
推荐指数
1
解决办法
933
查看次数

使用Object.create()进行JavaScript继承?

我如何继承Object.create()?我试过这些,但都没有工作:

var B = function() {};
var A = function() {};
A = Object.create(B);
A.prototype.C = function() {};
Run Code Online (Sandbox Code Playgroud)

var B = function() {};
var A = function() {};
A.prototype.C = function() {};
A = Object.create(B);
Run Code Online (Sandbox Code Playgroud)

var B = function() {};
A = Object.create(B);
var A = function() {};
A.prototype.C = function() {};
Run Code Online (Sandbox Code Playgroud)

没有任何效果.我该如何使用这个新的Object.create()函数?

javascript inheritance object object-create

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

如何使用Object参数将NSTimeInterval对象传递给detachNewThreadSelector?

我仍然是Objective C语法的新手,所以我可能会过度复杂,但我似乎无法弄清楚如何将NSTimeInterval传递给线程.

我想启动一个线程,它休眠从主线程发送的x秒参数,如下所示:

[NSThread detachNewThreadSelector:@selector(StartServerSynchThread) toTarget:self withObject:5];

- (void) StartServerSynchThread:(NSTimeInterval *)sleepSecondsInterval {

    [NSThread sleepForTimeInterval:sleepSecondsInterval];

}
Run Code Online (Sandbox Code Playgroud)

但是编译器一直给我一个语法错误.我不确定应该怎么做.任何帮助,将不胜感激.谢谢!

cocoa objective-c nstimeinterval nsthread

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

Ruby的三个"最终"版本?

我最近玩过IronRuby,但我也想安装参考实现.毋庸置疑,当涉及到Ruby时,我就是一个菜鸟,所以我有一个非常愚蠢的问题.

RubyForge下载页面上,Ruby安装程序有三种不同的最终版本(适用于Windows):

  • rubyinstaller-1.8.6-p398.exe
  • rubyinstaller-1.8.7-p249.exe
  • rubyinstaller-1.9.1-p378.exe

我不明白如何有三个不同的最终版本.我可以理解有一个1.8版本和一个1.9版本,但为什么我可以在1.8.6和1.8.7之间进行选择?

我真正想知道的是什么版本是"最好的"?如果答案是"1.9.1",为什么选择1.8.6或1.8.7?

我糊涂了...

ruby

6
推荐指数
1
解决办法
405
查看次数

IE8使用MooTools引发安全性错误

好吧,就像其他一切IE8正在给出一些严重的问题.当试图将MooTools加载到浏览器IE8时,只是给出了"发生安全问题"错误.我认为它可能与文件冲突或某些事情有关,但我似乎无法弄明白.这是一个网址,您可以自己查看.

http://www.tylermorriswoodworking.com/pages/recipe-box-wizard?b=maple&l=cherry&c=42042892

每个其他浏览器加载正常,奇怪的是其他页面加载MooTools和我的其他JavaScript文件就好了.怎么了!!

谢谢,泰勒

javascript security internet-explorer mootools

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

如何以编程方式从颜色数组创建24bpp位图?

我试图以编程方式从包含颜色数据的数组创建位图.使用下面的代码,当在图片框中显示时,我会并排获得3个重复的扭曲图像.谁能告诉我哪里出错了?

    public Bitmap CreateBM(int[,] imgdat)
    {
        Bitmap bitm = new Bitmap(imgdat.GetUpperBound(1) + 1, imgdat.GetUpperBound(0) + 1, PixelFormat.Format24bppRgb);
        BitmapData bitmapdat = bitm.LockBits(new Rectangle(0, 0, bitm.Width, bitm.Height), ImageLockMode.ReadWrite, bitm.PixelFormat);
        int stride = bitmapdat.Stride;

        byte[] bytes = new byte[stride * bitm.Height];
        for (int r = 0; r < bitm.Height; r++)
        {
            for (int c = 0; c < bitm.Width; c++)
            {
                Color color = Color.FromArgb(imgdat[r, c]);
                bytes[(r * bitm.Width) + c * 3] = color.B;
                bytes[(r * bitm.Width) + c * 3 + …
Run Code Online (Sandbox Code Playgroud)

c# bitmap

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

PHPUnit Stubbing类方法声明为"final"

我正在为一个类方法编写单元测试,该方法使用mock调用另一个类的方法,只需要调用的方法被声明为final,因此PHPUnit无法模拟它.我可以采取不同的方法吗?

例:

要被嘲笑的阶级

class Class_To_Mock
{
    final public function needsToBeCalled($options)
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我的测试用例

class MyTest extends PHPUnit_Framework_TestCase
{
    public function testDoSomething()
    {
        $mock = $this->getMock('Class_To_Mock', array('needsToBeCalled'));
        $mock->expects($this->once())
             ->method('needsToBeCalled')
             ->with($this->equalTo(array('option'));
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:如果使用Mike B提供的解决方案,并且你有一个setter/getter用于你正在模拟的对象进行类型检查(为了确保将正确的对象传递给setter),你需要模拟getter on你正在测试的类,让它返回另一个模拟.

例:

要被嘲笑的阶级

class Class_To_Mock
{
    final public function needsToBeCalled($options)
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

嘲笑

class Class_To_MockMock
{
    public function needsToBeCalled($options)
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

要测试的课程

class Class_To_Be_Tested
{
    public function setClassToMock(Class_To_Mock $classToMock)
    {
        ...
    }

    public function getClassToMock()
    {
        ...
    }

    public function doSomething() …
Run Code Online (Sandbox Code Playgroud)

php phpunit unit-testing mocking

15
推荐指数
2
解决办法
8649
查看次数