问题列表 - 第33482页

计算第N个排列步骤?

我有一个字母az的字符[26]和通过嵌套的语句我正在生成一个序列列表,如:

aaa, aaz... aba, abb, abz, ... zzy, zzz.
Run Code Online (Sandbox Code Playgroud)

目前,编写软件是为了从aaa-zzz生成所有可能值的列表,然后维护一个索引,并通过每个索引对它们执行操作.

这个列表显然很大,并不是非常大,但它已经达到了内存占用过大的程度(还有其他方面正在研究,但这是我得到的).

我正在尝试生成一个可以保留索引的公式,但是不要使用序列列表并根据当前索引计算当前序列(因为序列之间的操作之间的时间很长).

例如:

char[] characters = {a, b, c... z};
int currentIndex = 29; // abd

public string CurrentSequence(int currentIndex)
{
    int ndx1 = getIndex1(currentIndex); // = 0
    int ndx2 = getIndex2(currentIndex); // = 1
    int ndx3 = getIndex3(currentIndex); // = 3

    return string.Format(
        "{0}{1}{2}", 
        characters[ndx1], 
        characters[ndx2], 
        characters[ndx3]); // abd
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用子集(abc)编写一个小例子并尝试使用模数除法进行索引,但是我今天很难思考而且我很难过.

我不是要求答案,只是提供任何帮助.也许正朝着正确的方向发展?

c# math indexing list

8
推荐指数
3
解决办法
1128
查看次数

什么是Smalltalk"形象"?

什么是Smalltalk"形象"?是否像序列化Smalltalk运行时一样?

smalltalk terminology

27
推荐指数
4
解决办法
5975
查看次数

PropertyGrid替代品

我喜欢PropertyGrid,至少它背后的概念 - 使用反射和属性来编辑你的对象,而无需编写很多UI代码.

我的兴奋很快消失了,默认的PropertyGrid运输与WinForms完全糟糕.嗯,这对于编辑简单的对象等很好,但就目前而言.

  • 它不会为具有"Object"类型的动态属性显示适当的UITypeEditors.
  • 只要您的对象包含集合,您就可以使用所谓的CollectionEditor编辑它们.但是,它不会触发PropertyValueChanged事件.所以一旦你需要添加撤消功能,你就搞砸了.
  • 我仍然没有找到一种优雅的方法来为CollectionEditor添加验证.
  • 如果选择了多个对象,则实现撤销也存在问题,因为在这种情况下,PropertyValueChanged事件args ChangedItem为null.

我很快发现自己正在编写黑客来解决这些问题而不是令人满意的结果.

你会怎么做?至少前三个问题是否有优雅的解决方案?有替代的属性网格吗?最好是免费还是没有PInvokes?

.net c# propertygrid winforms

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

ASP.NET成员资格替代方案

我一直远离asp.net会员,因为它看起来很臃肿,而且(当时)不可测试.特别是在asp.net MVC的情况下,是否有人使用替代解决方案为用户分配角色,并为登录用户存储一些附加信息?有什么建议?只是实现您需要的功能,只是滚动自己是疯了吗?

asp.net-mvc asp.net-membership

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

我可以在Javascript中"扩展"一个闭包定义的"类"吗?

我有一个Javascript"类"定义如下:

var Welcomer = function(name) {
  var pName = name;
  var pMessage = function() {
    return "Hi, " + pName + "!";
  };

  return {
    sayHi: function() {
      alert(pMessage());
    }
  };
};

new Welcomer('Sue').sayHi();
Run Code Online (Sandbox Code Playgroud)

有没有办法以Welcomer这样的方式"子类化" 我可以重新定义公共方法并可以访问私有方法和变量?以下内容将允许我访问公共方法,但不允许访问私有方法:

var UnhappyWelcomer = function(name) {
  var pSadMessage = function() {
    // won't work, b/c I don't have access to pMessage
    return pMessage() + " Miserable day, innit?";
  };

  return {
    sayHi: function() {
      alert(pSadMessage());
    }
  };
};
UnhappyWelcomer.prototype = Welcomer(); // failed …
Run Code Online (Sandbox Code Playgroud)

javascript inheritance closures scoping

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

python,datetime.date:两天之间的差异

我正在玩2个对象{@link http://docs.python.org/library/datetime.html#datetime.date }

我想计算它们之间的所有日期,假设日期1> =日期2,并打印出来.这是我想要实现的一个例子.但我认为这根本不是有效的.有一个更好的方法吗?

# i think +2 because this calc gives only days between the two days, 
# i would like to include them
daysDiff = (dateTo - dateFrom).days + 2

while (daysDiff > 0):
     rptDate = dateFrom.today() - timedelta(days=daysDiff)
     print rptDate.strftime('%Y-%m-%d')
     daysDiff -= 1

python

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

检查实例是否属于某种类型

用它来检查是否c是实例TForm.

c.GetType().Name.CompareTo("TForm") == 0
Run Code Online (Sandbox Code Playgroud)

除了使用stringas作为参数之外,还有更安全的类型CompareTo()吗?

.net c#

165
推荐指数
5
解决办法
18万
查看次数

O = Deparse是如何工作的,Perl是否具有折叠常数数组?

我想知道,确实-MO=Deparse向您展示了所有Perl优化,为什么不在Perl 5.10中折叠?

$ perl -MO=Deparse -e'[qw/foo bar baz/]->[0]'
['foo', 'bar', 'baz']->[0];
-e syntax OK
Run Code Online (Sandbox Code Playgroud)

IRC的一些人认为O=Deparse可能没有全部显示,但它确实显示了一些不断折叠.

$ perl -MO=Deparse -e'use constant "foo" => "bar"; foo'
use constant ('foo', 'bar');
'???';
-e syntax OK
Run Code Online (Sandbox Code Playgroud)

如果我明确写出常量sub,结果相同.虽然可预测,但是文档中constant.pm包含的是创建常量列表而不是常量数组也很有趣.我假设这不仅仅是像标量常量那样折叠,而是需要在每次调用时创建新数组的开销.

$ perl -MO=Deparse -e'use constant foo => qw/foo bar baz/; (foo)[0]'
use constant ('foo', ('foo', 'bar', 'baz'));
(foo)[0];
-e syntax OK
Run Code Online (Sandbox Code Playgroud)

我能得出的唯一结论-MO=Deparse是显示所有折叠,而常量数组在Perl中没有优化?是这样吗?它有技术原因吗?

perl compiler-optimization perl5.10 constantfolding

8
推荐指数
2
解决办法
800
查看次数

C++做什么做什么

>>在这种情况下做什么?

int n = 500;
unsigned int max = n>>4;
cout << max;
Run Code Online (Sandbox Code Playgroud)

打印出31.

500到达31后它做了什么?

c++ integer

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

令人困惑的循环问题(python)

这类似于python中的合并排序中的问题 我正在重述,因为我不认为我在那里很好地解释了这个问题.

基本上我有一系列约1000个文件都包含域名.总共数据> 1gig所以我试图避免将所有数据加载到ram中.每个单独的文件都使用.sort(get_tld)进行排序,它根据TLD对数据进行排序(不是根据其域名排序.将所有.com排在一起,.orgs排在一起等)

典型的文件可能看起来像

something.ca
somethingelse.ca
somethingnew.com
another.net
whatever.org
etc.org
Run Code Online (Sandbox Code Playgroud)

但是显然更长.

我现在想要将所有文件合并为一个,保持排序,以便最终一个大文件仍然可以将所有.com放在一起,.orgs在一起等等.

我基本上想做的是

open all the files
loop:
    read 1 line from each open file
    put them all in a list and sort with .sort(get_tld)
    write each item from the list to a new file
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我无法弄清楚如何循环使用open()不能使用的文件,因为我没有1个文件打开循环,我有很多.而且它们都是可变长度的,所以我必须确保通过最长的一个.

任何建议都非常感谢.

python sorting loops

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