小编Vin*_*ele的帖子

为什么我不能使用两个泛型类型参数的协方差?

请考虑以下示例:

class Base {}

class Derived : Base {}

class Test1
{
    private List<Derived> m_X;

    public IEnumerable<Base> GetEnumerable()
    {
        return m_X;
    }
}
Run Code Online (Sandbox Code Playgroud)

编译得很好,因为它IEnumerable<T>协变T.

但是,如果我做同样的事情,但现在使用泛型:

class Test2<TBase, TDerived> where TDerived : TBase
{
    private List<TDerived> m_X;

    public IEnumerable<TBase> GetEnumerable()
    {
        return m_X;
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到编译器错误

无法将表达式类型'System.Collection.Generic.List'转换为返回类型'System.Collection.Generic.IEnumerable'

我在这做错了什么?

c# generics covariance

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

求出给定集合的所有子集的最小公倍数之和

给定: set (),with .A = {a0, a1, ..., aN-1}1 ≤ N ≤ 1002 ≤ ai ≤ 500

问:找到所有A大小至少为2的子集的所有最小公倍数(LCM)的总和.

一组的LCM 被定义为最小整数,使得对于所有.B = {b0, b1, ..., bk-1}Bminbi | Bmin0 ≤ i < k

例:

N = 3A = {2, 6, 7},则:

LCM({2, 6})      =    6
LCM({2, 7})      =   14
LCM({6, 7})      = …
Run Code Online (Sandbox Code Playgroud)

algorithm primes computer-science dynamic-programming prime-factoring

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

该算法找到所需的开关打开轻型竹节

假设你在一个带N开关的房间里,隔壁房间里有一个灯泡.只有当某些指定的开关全部打开时,灯泡才会发光.

  • switches=所有开关的集合.|switches| = N.
  • required =需要打开的开关才能使灯泡发光.

不需要的开关无关紧要.

只有进入下一个房间,才能检查灯泡是否发光.您可以打开或关闭某些开关,转到下一个房间检查灯泡,然后重复此过程.让我们称之为ATTEMPT.

假设N在WORST CASE中有一些开关,找出这组required开关所需的最小尝试次数(使用优化策略)是多少?


例如,

  • switches = { 1, 2, 3 }
  • required = { 1, 2 }

让我们尝试一种天真的方法:

  • 打开{ 1, 2 },灯光正在发光.(确保不需要开关3)
  • 打开{ 1, 3 },灯不亮.(确保需要开关2)
  • 打开{ 2, 3 },灯不亮.(确保需要开关1)

因此,通过3次尝试,我们可以确保required = { 1, 2 }.

这个问题的优化算法是什么?

我们worst(N)要考虑的最小尝试N在最坏的情况下开关.你能找到答案吗?worst(N)

更新:如果您认为worst(N) = N,您能提供正式证明吗?

algorithm math

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

多项式的根是mod的素数

我正在寻找一种快速算法来找到素数有限域中单变量多项式的根.

也就是说,如果 (n> 0)那么对于给定的素数p ,找到满足的算法.f = a0 + a1x + a2x2 + ... + anxnr < pf(r) = 0 mod p

我发现了Chiens搜索算法https://en.wikipedia.org/wiki/Chien_search但是我无法想象这对于大于20位的素数来说是快速的.有没有人有使用Chien的搜索算法的经验或知道更快的方法?这是否有一个sympy模块?

algorithm sympy polynomial-math polynomials

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

Binaryformatter序列化中的十进制字节数组构造函数

我面临一个非常讨厌的问题,我无法识别.
我正在运行一个包含数千个对象的非常大的业务ASP.Net应用程序; 它使用内存中的序列化/反序列化与MemoryStream来克隆应用程序的状态(保险合同)并将其传递给其他模块.它运作良好多年.现在有时,不是系统地,在序列化中它抛出异常

十进制字节数组构造函数需要一个包含有效十进制字节的长度为4的数组.

使用相同的数据运行相同的应用程序,5次中的3次有效.我启用了所有CLR异常,Debug - Exceptions - CLR Exception - Enabled,所以我猜如果错误的初始化/分配到十进制字段,程序应该停止.它不会发生.
我试图在更基本的对象中拆分序列化,但是尝试识别导致问题的字段非常困难.从生产中的工作版本开始,我从.Net 3.5传递到.NET 4.0,并且已经对UI部分进行了一致的更改,而不是业务部分.耐心地,我会经历所有的变化.

它看起来像老式的C问题,当char *p它写不应该的时候,并且只有在序列化过程中它检查问题弹出的所有数据时.

在.Net的托管环境中是否可以这样?应用程序是巨大的,但我看不到异常的内存增长.什么是调试和追踪问题的方法?

下面是stacktrace的一部分

[ArgumentException: Decimal byte array constructor requires an array of length four containing valid decimal bytes.]
   System.Decimal.OnSerializing(StreamingContext ctx) +260

[SerializationException: Value was either too large or too small for a Decimal.]
   System.Decimal.OnSerializing(StreamingContext ctx) +6108865
   System.Runtime.Serialization.SerializationEvents.InvokeOnSerializing(Object obj, StreamingContext context) +341
   System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) +448
   System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, …
Run Code Online (Sandbox Code Playgroud)

c# asp.net serialization memory-management binaryformatter

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

如何将点均匀分布在矩形的周边

我正在寻找一种沿着矩形周边的一部分分布点的方法。这些点需要彼此距离均匀。

我有一个矩形(通常是正方形)边界,以及沿该周边的 2 个点(pspe),标记了点的允许范围。这里我用红色标记了允许的范围:

允许范围

我需要n沿着该线段放置点(通常是 1-3 个)。这些点需要均匀分布dn0所以..n1n1..等之间的距离n2应该都是d。出于分布目的,边界点也很重要,因此第一个点和最后一个点之间的距离 和ps/也pe应该d如此。

这似乎是一项简单的任务,但我很快意识到这种简单的方法在这里不起作用。获取线段的长度并除以n+1 不会考虑角点。例如:n= 1,使点太靠近pe

不正确的放置

我的数学很生疏(日常工作通常不需要太多数学),但我尝试了几种不同的方法,但都没有完全解决。我能够使用向量求解= 1,方法是找到和n之间的中点,找到垂直向量,然后将其与线段相交,如下所示。我不知道如何使这种方法发挥作用,如果是其他的话,或者即使它可以做到。pspen

正确的放置

最后一点,如果完全均匀分布不切实际,那么足够好的近似值就可以了。理想情况下,在整个范围内近似值的偏差大致相同(而不是说,在边缘处更差)。

algorithm math 2d point path

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

如何在没有同步的情况下从多个线程修改2D数组

如何在java中设计2D数组,使其允许多个线程在不使用同步的情况下修改或插入特定位置的值

java data-structures

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

Java中的Bellman Ford算法

任何人都可以帮助java中的bellman ford算法来计算源顶点的最短路径.

我还希望在遍历所有边缘之后为每个节点打印最终更新的前任节点,并且在所有迭代之后这是我的代码

import java.io.*;
import java.util.*;
public class BellmanFord {
    LinkedList<Edge> edges;
    int d[];
    int n,e,s;
    final int INFINITY=999;

    private static class Edge  {
        int u,v,w;

        public Edge(int a, int b, int c)     {
            u=a;
            v=b;
            w=c;
        }
    }

    BellmanFord() throws IOException {
        int item;
        edges = new LinkedList<Edge>();
        BufferedReader inp = new BufferedReader (new InputStreamReader(System.in));

        System.out.print("Enter number of vertices ");
        n = Integer.parseInt(inp.readLine());

        System.out.println("Cost Matrix");
        for(int i=0;i<n;i++) {
            for(int j=0;j<n;j++)   {
                item = Integer.parseInt(inp.readLine());
                if(item != 0)
                    edges.add(new …
Run Code Online (Sandbox Code Playgroud)

java

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

Javascript ajax和回调

我真的不明白为什么我的变量未定义这是我的代码:

Calendar = function() {

    this.data;  
    this.init = function(path, callback){
        $.ajax({
            url:path,
            type:'GET',
            success:function(data){
                this.data = data;
                console.log(this.data);
                callback();
            }
        })
    }

    this.create = function(){
        this.generateYear();
    }   

    this.generateYear = function(){
        console.log(this.data); 
    }   
}
Run Code Online (Sandbox Code Playgroud)

我这样使用它:

$(document).ready(function(){
    var calendar = new Calendar();
    calendar.init(path,function(){
        calendar.create();
    });
});
Run Code Online (Sandbox Code Playgroud)

所以第一个console.log是好的,但第二个是未定义的,我不明白为什么因为他之后被调用.

谢谢你的帮助

javascript ajax callback

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

xslt模板匹配具有特定属性的子元素值?

让我们说一个有这个基本的xml文档:

<result name="response" numFound="73" start="0">
    <doc>
        <str name="contentType">Content1</str>
        <str name="content">Some content here</str>
    </doc>
    <doc>
        <str name="contentType">Content2</str>
        <str name="content">Some other content</str>
    </doc>
</result>
Run Code Online (Sandbox Code Playgroud)

我打算为每种内容类型使用不同的模板.什么是模板匹配参数?当只有contentType字段是特定值时,我无法弄清楚如何匹配doc的其他子节点.

xml xslt transform

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

在C++中调用类的静态函数

我现在正在编写很多java,所以我对java 静态方法和c ++ 静态函数感到困惑.

在java中,你可以从类中调用静态方法,我经常使用/看到它,例如:

public class A{
    public void static b(){
        System.out.println("hello");
    }
}
Run Code Online (Sandbox Code Playgroud)

你能做到,A.b();你能用C++做到吗?如果是这样,与在java中这样做相比,它不是那么受欢迎吗?

c++ java static-methods

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