我正在与一个需要生成数百万字母数字代码的客户合作,这些代码用于杂志刮刮卡,瓶装奖品等.它们必须足够短以便在帽子上打印,他们希望确保不包括像1和I,0和O等模糊字符,并且必须明确存储它们以备将来使用 - 我们可以'只有一个算法可以在某人试图兑换一个时确定"有效性".最后,他们希望确保代码随机分布在一个大的"代码空间"内,这样人们就不能通过遍历字母表来猜测其他代码.
有没有指向合理有效的算法来生成这些类型的代码集?我在信封的背面刮了几下,但这个问题闻起来像是一个不知情的陷阱.
我正在寻找一些允许我生成逼真的2D地形图的算法.通过现实我的意思是,这个人会将这样的地图视为"普通"地形图,而不是人工创建的.我不想创建逼真的地图.只是类似于可以在地理地图集中查看的地图.
到目前为止,我正在使用perlin噪音进行高度测绘,然后我会添加湖泊,河流,山脉,沼泽等.您可以在下面的图片中查看它的外观:
地形图http://www.freeimagehosting.net/uploads/1f1e9372bf.png
我对它不满意.这是不现实的,但我不能自己找出更好的东西.时间不是问题所以算法可能是繁重的计算.
谢谢你的时间.
编辑后:
我想我找到了一篇可以提供帮助的文章:http://portal.acm.org/citation.cfm?id = 1255047.1255077
然而,它不能免费获得,所以我仍然在寻找答案或想法.
我是一名VB.Net开发人员,在C#中有点新手,在查看C#文档时,我通过迭代器和生成器来了,无法完全理解使用,我有任何人可以解释(在vb中有洞察力;如果可能的话)
我有一个像这样定义的生成器:
def lengths(x):
for k, v in x.items():
yield v['time_length']
Run Code Online (Sandbox Code Playgroud)
它起作用,称之为
for i in lengths(x):
print i
Run Code Online (Sandbox Code Playgroud)
生产:
3600
1200
3600
300
Run Code Online (Sandbox Code Playgroud)
这是正确的数字.
但是,当我这样称呼时:
somefun(lengths(x))
Run Code Online (Sandbox Code Playgroud)
其中somefun()定义为:
def somefun(lengths):
for length in lengths(): # <--- ERROR HERE
if not is_blahblah(length): return False
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息:
TypeError: 'generator' object is not callable
Run Code Online (Sandbox Code Playgroud)
我有什么误会?
当我遇到这个RangeGenerator页面时,我正在浏览Python Generators Wiki,该页面谈到irange() -
这将让我们迭代大量数字而不诉诸xrange,这是一个惰性列表而不是生成器.
我似乎无法理解该页面上描述的测试套件和实现.我知道range()在内存中创建一个列表(从Python 2.7的角度来看)并且xrange()是一个生成器.有irange()什么不同?
我最近编写了一个返回一系列打开文件的方法; 换句话说,这样的事情:
# this is very much simplified, of course
# the actual code returns file-like objects, not necessarily files
def _iterdir(self, *path):
dr = os.path.join(*path)
paths = imap(lambda fn: os.path.join(dr, fn), os.listdir(dr))
return imap(open, paths)
Run Code Online (Sandbox Code Playgroud)
从语法上讲,如果我执行以下操作,我不希望必须关闭生成的对象:
for f in _iterdir('/', 'usr'):
make_unicorns_from(f)
# ! f.close()
Run Code Online (Sandbox Code Playgroud)
结果,我决定包装_iterdir一个上下文管理器:
def iterdir(self, *path):
it = self._iterdir(*path)
while 1:
with it.next() as f:
yield f
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常.
我感兴趣的是这样做是否是好习惯.我是否会遇到这种模式之后的任何问题(可能会抛出异常)?
我正在尝试List使用生成器在ES6中创建一个monad.为了使它工作,我需要创建一个已经消耗了几个状态的迭代器的副本.如何在ES6中克隆迭代器?
function* test() {
yield 1;
yield 2;
yield 3;
}
var x = test();
console.log(x.next().value); // 1
var y = clone(x);
console.log(x.next().value); // 2
console.log(y.next().value); // 2 (sic)
Run Code Online (Sandbox Code Playgroud)
我试着clone和cloneDeep从lodash,但他们是没有用的.以这种方式返回的迭代器是本机函数并在内部保持其状态,因此似乎没有办法用自己的JS代码来完成它.
以下代码返回NameError: global name 'self' is not defined.为什么?
lengths = [3, 10]
self.fooDict = getOrderedDict(stuff)
if not all(0 < l < len(self.fooDict) for l in lengths):
raise ValueError("Bad lengths!")
Run Code Online (Sandbox Code Playgroud)
请注意,这self.fooDict是一个有35个条目的OrderedDict(从集合库导入).当我尝试调试时,下面的代码执行没有错误:
(Pdb) len(self.dataDict)
35
(Pdb) all(0 < size < 35 for size in lengths)
True
Run Code Online (Sandbox Code Playgroud)
但是下面的debugginf代码给出了原始错误:
(Pdb) baz = len(self.dataDict)
(Pdb) all(0 < size < baz for size in lengths)
NameError: global name 'baz' is not defined
Run Code Online (Sandbox Code Playgroud) 你有一个原型对象Foo有两个异步方法调用,bar和baz.
var bob = new Foo()
Foo.prototype.bar = function land(callback) {
setTimeout(function() {
callback()
console.log('bar');
}, 3000);
};
Foo.prototype.baz = function land(callback) {
setTimeout(function() {
callback()
console.log('baz');
}, 3000);
};
Run Code Online (Sandbox Code Playgroud)
我们想做bob.bar().baz()并按顺序记录"bar"和"baz".
如果你不能修改方法调用(包括传入你的回调函数),你如何将默认回调传递给这些方法调用?
一些想法:
用装饰器包裹"bob"(如何实现仍然模糊,可以用一个小例子)
修改构造函数以指定默认回调(如果没有分配)(未考虑是否可能)
使用生成器包装器将继续调用next方法,直到没有剩下?
我对Keras很新.我训练了一个模型,并希望预测存储在子文件夹中的一些图像(比如用于训练).为了测试,我想预测7个类(子文件夹)中的2个图像.下面的test_generator可以看到14张图片,但我得到了196张预测.哪里出错了?非常感谢!
test_datagen = ImageDataGenerator(rescale=1./255)
test_generator = test_datagen.flow_from_directory(
test_dir,
target_size=(200, 200),
color_mode="rgb",
shuffle = "false",
class_mode='categorical')
filenames = test_generator.filenames
nb_samples = len(filenames)
predict = model.predict_generator(test_generator,nb_samples)
Run Code Online (Sandbox Code Playgroud) generator ×10
python ×5
javascript ×2
.net ×1
2d ×1
asynchronous ×1
c# ×1
callback ×1
clone ×1
ecmascript-6 ×1
enumerators ×1
es6-promise ×1
iterator ×1
keras ×1
mysql ×1
php ×1
random ×1
range ×1
scope ×1
terrain ×1
xrange ×1
yield ×1