首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成随机向量的web服务的奇怪行为

生成随机向量的web服务的奇怪行为
EN

Stack Overflow用户
提问于 2014-08-09 00:14:16
回答 1查看 84关注 0票数 0

有人能解释一下我的程序的奇怪行为吗?

我已经创建了一个web服务。它包含一个生成一组三维随机向量的方法,这些向量具有和等于1的正坐标。为了生成这些向量,我使用了here中的RandomNess类。我的代码如下:

代码语言:javascript
复制
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class Service1
{
    [OperationContract]
    public void GenerateRandomVectors()
    {
        RandomNess.RandomNess rand = new RandomNess.RandomNess();
        var vector = new List<double>();

        for (int i = 0; i < 1000; i++)
        {      
            //The first parameter of RandFixedSum is dimension of vector;
            //The second parameter is a required sum of elements;
            //The third and the fourth parameters are bounds for elements; 
            vector = rand.RandFixedSum(3, 1, 0, 1); 

            //Writing obtained vector to a file;
            ...
        }
        return;
    }
}

我使用以下代码从Silverlight应用程序调用服务:

代码语言:javascript
复制
ServiceReference1.Service1Client web;
web = new ServiceReference1.Service1Client();
web.GenerateRandomVectorsAsync();

当我可视化结果时,我看到所获得的点只填充了标准单纯形的一部分。因此,该方法给出了错误的结果(参见图片here)。

但是(!)如果我直接从Silverlight应用程序(而不是从web服务)或从Windows Forms应用程序调用方法RandFixedSum(...),我将获得绝对正确的分布(点填充了标准单形的所有表面)。

我的web服务出了什么问题?为什么它会给出错误的结果?

EN

回答 1

Stack Overflow用户

发布于 2014-08-11 19:27:22

您应该在调用web.GenerateRandomVectorsAsync()之前订阅web.GenerateRandomVectorsCompleted,并开始在事件处理程序中解析由web服务创建的数据文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25207779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档