小编sch*_*der的帖子

特殊随机数

我想要一个这样的随机数:(在C#中)

Random r = new Random();
r.next (0,10)
Run Code Online (Sandbox Code Playgroud)

但重要的是随机数更接近8,(或通常很大),我的意思是如果我们使用a:

for (int i =0; i<...;i++)
{
  write: r.next (0,10)
}
Run Code Online (Sandbox Code Playgroud)

结果是这样的;

8 7 6 9 1 0 5 3 2
2 3 8 9 7 7 6 2 3
8 8 9 7 2 8 2 8 4
3
Run Code Online (Sandbox Code Playgroud)

c# random numbers

7
推荐指数
2
解决办法
1336
查看次数

对按行和列元素排序的二维整数数组进行排序

我只需要一点帮助.我正在进行一项任务,我需要一种有效的方法 来排序一个二维整数数组,其中行和列元素已经按升序排序.(优选语言C/C++).

输入:

 1  5   10   15  20
 2  7   12   17  22
 4  9   18   25  28
 11 14  21   26  31
Run Code Online (Sandbox Code Playgroud)

输出:

1  2  4  5  7
9  10 11 12 14
15 17 18 20 21
22 25 26 28 31
Run Code Online (Sandbox Code Playgroud)

提前致谢.

c c++

7
推荐指数
2
解决办法
1656
查看次数

Delphi XML(MSXML)例程的二次运行时

在工作中,我们使用的是XML日志文件.每个日志消息是<message>与块<date><time>子节点,还有<submessage>块,<table>构建体等和日志文件可以被转换成使用一些Delphi的处理和以后的XSLT的局部HTML.

对于中等大小的日志文件(大约2 MB),我们遇到了性能问题(加载XML并进行一些基本操作需要一分钟),我可以将它们缩减为这样的测试项目(编辑:更新了代码并添加了测量结果) ):

procedure TForm1.PrepareTest(MessageCount : integer);
var
  XML : IXMLDocument;
  i : integer;
begin
  XML := NewXMLDocument;
  XML.DocumentElement := XML.CreateNode('root');
  for i := 1 to MessageCount do
  begin
    XML.DocumentElement.AddChild('message').Text := 'Test Text';
  end;
  XML.SaveToFile(XML_NAME);
end;

procedure TForm1.XMLTest;
var
  StartTime : Cardinal;
  XML : IXMLDocument;
begin
  StartTime := GetTickCount();
  XML := NewXMLDocument;
  XML.LoadFromFile(XML_NAME);
  Memo1.Lines.Add('Node count: ' + IntToStr(XML.DocumentElement.ChildNodes.Count));
  Memo1.Lines.Add('Time: ' + FloatToStr((GetTickCount() - StartTime) / 1000) + ' seconds'); …
Run Code Online (Sandbox Code Playgroud)

xml delphi performance

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

比较字符串迭代器和字符指针

我在函数中有一个const char*const字符串.我想用它来比较字符串中的元素.

我想迭代字符串,然后与char*进行比较.

#include <iostream>
#include <string>
#include <cstring>

using namespace std;

int main()
{

  const char * const pc = "ABC";
  string s = "Test ABC Strings";

  string::iterator i;

  for (i = s.begin(); i != s.end(); ++i)
  {
    if ((*i).compare(pc) == 0)
    {
      cout << "found" << endl;
    }
  }
Run Code Online (Sandbox Code Playgroud)

如何解析char*以解决字符串迭代器?

谢谢..

c++

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

获取QPixmap哈希的最佳方法是什么?

我正在使用Qt 4.5开发图形应用程序,并将图像放入QPixmapCache中,我想对此进行优化,以便如果用户插入已在缓存中的图像,它将使用该图像。

现在,每个图像都有一个唯一的ID,有助于在绘制事件时优化自身。但是我意识到,如果我可以计算图像的哈希值,则可以查找缓存以查看其是否已存在并使用它(当然,对于重复的对象,它还有更多帮助)。

我的问题是,如果QPixmap较大,则对其进行哈希计算会减慢速度,还是有更快的方法?

c++ hash qt caching qpixmap

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

Apache日志是否取消了下载?

如果用户从Apache Web服务器请求大文件,但在完成之前取消下载,那么Apache会记录这个吗?

我可以从日志文件中判断哪些响应未完全发送,以及发送了多少字节?

apache webserver http

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

Javascript(重新)压缩的Javascript概念证明

我的程序Precomp可用于进一步压缩已压缩的文件格式,如GIF,PNG,PDF,ZIP等.粗略地总结,它通过解压缩压缩流,重新压缩它们并存储预期压缩流和实际压缩流之间的差异来实现.例如,维基百科的旋转地球图片从1429 KB压缩到755 KB.该过程是无损的,因此可以恢复原始GIF文件.

GIF文件格式的算法可以相对容易地隔离和实现,因此我在思考JavaScript中的概念验证实现.这将导致Web服务器发送GIF文件的压缩版本(.pcf结束,基本上是GIF图像内容的bzip2压缩文件),客户端解压缩数据,重新压缩到GIF并显示它.以下事情将要做:

  • 网站作者将使用标准版本的Precomp来压缩他的GIF文件,并将这些文件而不是GIF文件与用于客户端重新压缩的JavaScript一起提供.
  • 客户端将解压缩bzip2压缩文件,这可以使用现有的bzip2 Javascript实现之一来完成.
  • 客户端会将图像内容重新压缩为原始GIF文件.

该过程是带宽与客户端CPU使用率的交易.

现在我的问题如下:

  • 加载不同文件并将其"转换"为GIF的过程是否存在任何常见问题?
  • 在客户端完成之前,您建议显示什么(图像占位符)?
  • 我该怎么做才能确保缓存.pcf文件?如果没有缓存,带宽节省是无用的.
  • 如果JavaScript被停用,有没有办法显示原始GIF,但如果激活JavaScript,则避免加载GIF?
  • 我可以为用户提供配置行为的方法吗?例如,在移动设备上,有些可能会避免带宽,但其他人可能希望减少CPU使用率.
  • 是否可以按照假设显示隔行扫描的GIF(从粗略版本到最终图像)?这将需要在再压缩的不同阶段多次更新图像内容.

javascript compression gif bzip2

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

如何将图像嵌入到EXE文件中并将其显示为幻灯片

我需要构建一个图像管理器,允许用户构建一组照片/图像,然后给他们一个选项,将这些照片转换为单个EXE,在运行时,它会将目标PC上的照片/图像显示为全屏幻灯片放映.

是否可以为多个图像执行此操作?

delphi vb6 executable realbasic slideshow

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

确定两个列表是否包含相同的数字项而不进行排序

我有两个列表,我需要确定它们是否包含相同的值而不进行排序(即,值的顺序无关紧要).我知道排序可以工作,但这是性能关键部分的一部分.

项目值在[-2,63]范围内,我们总是比较相同大小的列表,但列表大小的范围是[1,8].

示例列表:

A = (0,   0, 4, 23, 10)
B = (23, 10, 0,  4,  0)
C = (0,   0, 4, 27, 10)

A == B is true
A == C is false
Run Code Online (Sandbox Code Playgroud)

我认为一个可能的解决方案是比较两个列表的乘积(将所有值相乘),但这个解决方案存在问题.如何处理零和负数.解决方法是在乘法之前为每个值添加4.这是我到目前为止的代码.

bool equal(int A[], int B[], int size)
{
    int sumA = 1;
    int sumB = 1;

    for (int i = 0; i < size; i++) {
        sumA *= A[i] + 4;
        sumB *= B[i] + 4;
    }
    return (sumA == sumB)
}
Run Code Online (Sandbox Code Playgroud)

但是,无论列表的顺序/内容是什么,这总是有效吗?换句话说,以下数学上是真的吗?所以我真正要求的是以下(除非有另一种方法来解决问题):

给出2个相同大小的列表.如果列表中的乘积(将所有值相乘)相等,则列表包含相同的值,只要这些值是大于0的整数即可.

performance

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

每种散列方法都有不同的值

谁能告诉我我做错了什么?我试图用murmurhash散列一个值,但每次都得到不同的值:

std::string str = "some test string";
char out[32];

MurmurHash3_x86_32(str.c_str(), str.length(), 0, out);
unsigned int hash = reinterpret_cast<unsigned int>(out);
Run Code Online (Sandbox Code Playgroud)

c++ hash

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