Posts

Showing posts with the label Random

Cryptographically Secure Number Generator For Node.js

Answer : You are correct that Math.random() is not secure. If you want a CSPRNG in Node.js, crypto.randomBytes() is what you're looking for. There are a few libs available, but I need to be certain whether they are really true random. Any one who considers arithmetical methods of producing random digits is, of course, in a state of sin. Basically, no library can generate any "really true random"s. Lately some processors include support for hardware RNGs, which allows (hopefully) "really true random"s to be generated. That being said, there are -very- few applications for which a CSPRNG will not suffice. In fact, CSPRNGs offer such good quality randomness that I can't think of any.

Can I Specify A Numpy Dtype When Generating Random Values?

Answer : Q: is it possible to specify a dtype for random numbers when I create them. A: No it isn't. randn accepts the shape only as randn(d0, d1, ..., dn) Simply try this: x = np.random.randn(10, 10).astype('f') Or define a new function like np.random.randn2 = lambda *args, dtype=np.float64: np.random.randn(*args).astype(dtype) x = np.random.randn2(10, 10, dtype='f') If you have to use your code on the post, try this code instead x = np.zeros((10, 10), dtype='f') x[:] = np.random.randn(*x.shape) This assigns the results of randn to the memory allocated by np.zeros Let me begin by saying that numpy now supports dtypes for random integers. This enhancement can be tracked through Issue #6790 on numpy's github. But as of today, this facility is not available for the gaussian RNG . I needed this same facility so I wrote this patch for numpy, https://gist.github.com/se4u/e44f631b249e0be03c21c6c898059176 The patch only adds support for generati...