gimymblert
|
|
« Reply #340 on: January 18, 2019, 04:38:55 PM » |
|
|
|
|
Logged
|
|
|
|
gimymblert
|
|
« Reply #341 on: February 03, 2019, 05:41:25 AM » |
|
Deep Learning for Game Developers
|
|
|
Logged
|
|
|
|
gimymblert
|
|
« Reply #342 on: February 03, 2019, 12:42:31 PM » |
|
Computer Generates Human Faces
|
|
|
Logged
|
|
|
|
JobLeonard
|
|
« Reply #343 on: February 18, 2019, 06:10:49 AM » |
|
"Crossposting" since randomization and ProcGen go hand-in-hand.
|
|
|
Logged
|
|
|
|
gimymblert
|
|
« Reply #344 on: February 25, 2019, 01:57:03 AM » |
|
Unity3d Procedural Generation of Buildings with a custom Unity script and custom inspector
|
|
|
Logged
|
|
|
|
gimymblert
|
|
« Reply #345 on: February 25, 2019, 02:05:12 AM » |
|
"Crossposting" since randomization and ProcGen go hand-in-hand. I'm looking for an "instant" (O1) random shuffle, ie a "seeded bijective random hash" of indexes, do you know any? I think the term is "perfect random hashing" but the one I found generally only apply on the bit length, not custom array length.
|
|
|
Logged
|
|
|
|
JobLeonard
|
|
« Reply #346 on: February 25, 2019, 04:59:06 AM » |
|
If you include initialization, I don't think you really can get better than O(n).
Can you elaborate on the use-case?
|
|
|
Logged
|
|
|
|
BorisTheBrave
|
|
« Reply #347 on: February 27, 2019, 02:34:50 PM » |
|
I think the term is "perfect random hashing" but the one I found generally only apply on the bit length, not custom array length. I mean, if you have a shuffle over the first n integers, you can construct a shuffle over the first m integers, m < n, as follows: def m_shuffle(i): i = n_shuffle(i) while i >= m: i = n_shuffle(i) return i It's still amortized constant time, and hash quality shouldn't be too much lower if m and n are similar.
|
|
|
Logged
|
|
|
|
gimymblert
|
|
« Reply #348 on: March 09, 2019, 11:30:32 AM » |
|
I'm late, no internet, but the use case is basically infinite universe in the quintillion range, O(n) is not applicable, I was just wondering if there was hash for random length instead of the full bit range.
A typical application would be to create a random range (like population) and use the " instant random shuffling hash" to be sure it is random "enough" so that we don't have obvious pattern in distribution. Especially in "simulated simulation" where I hash npc schedule randomly, so that we don't have npc always being in the same layout (ie home neighbor end up in sequential order in job seat).
But anyway It's not in a hurry, I still have to deal with hairtech™ but I'm currently following a mandatory training in webdesign.
|
|
|
Logged
|
|
|
|
BorisTheBrave
|
|
« Reply #349 on: March 10, 2019, 01:22:14 PM » |
|
If the range of values in the quintillion, you don't need to care about perfect hashing - collisions are nigh impossible anyway. Even if you let users search through your infinite universe, they won't be able to find any cases where things are broken. I was just wondering if there was hash for random length instead of the full bit range. Isn't that exactly what I showed you?
|
|
|
Logged
|
|
|
|
gimymblert
|
|
« Reply #350 on: March 11, 2019, 11:02:00 AM » |
|
If the range of values in the quintillion, you don't need to care about perfect hashing - collisions are nigh impossible anyway. Even if you let users search through your infinite universe, they won't be able to find any cases where things are broken.
This effect is call "pcg echo" and there was a talk somewhere i can't find back where it was discussed as happening fairly often despite what the number would suggest. Player aren't "collision", they actually spread through the possibility space, it's the same mistake the dev of no man's sky got into when they said meeting another player will be rare, but they did it the first day. I think it's because random is not uniform and tend to exhibit clump, and the player "spread" increase the range likelihood of "collision", couple with that we are very very good at spotting pattern. I was just wondering if there was hash for random length instead of the full bit range. Isn't that exactly what I showed you? I meant O(1) isn't what you showed O(n) (due to the while loop)? I'm not sure I'll have to take another deep look at it lol
|
|
|
Logged
|
|
|
|
gimymblert
|
|
« Reply #351 on: March 11, 2019, 11:05:33 AM » |
|
Technical Artist Bootcamp: Introduction to Proceduralism
|
|
|
Logged
|
|
|
|
Crimsontide
|
|
« Reply #352 on: March 11, 2019, 11:10:06 AM » |
|
This effect is call "pcg echo" and there was a talk somewhere i can't find back where it was discussed as happening fairly often despite what the number would suggest. Player aren't "collision", they actually spread through the possibility space, it's the same mistake the dev of no man's sky got into when they said meeting another player will be rare, but they did it the first day. I think it's because random is not uniform and tend to exhibit clump, and the player "spread" increase the range likelihood of "collision", couple with that we are very very good at spotting pattern. That wasn't because of the birthday paradox ( https://en.wikipedia.org/wiki/Birthday_problem)?
|
|
|
Logged
|
|
|
|
BorisTheBrave
|
|
« Reply #353 on: March 11, 2019, 01:26:41 PM » |
|
Adding a while loop doesn't automatically make this O(n). In this case, it is amortized O(1), with a simple proof. Yep, spot on. But a quintillion is *really big*, 10^18. That means you need to sample a *billion* random items before there is a 50% odds of finding a collision between any pair. So even with the birthday paradox, collisions are going to be quite rare.
|
|
|
Logged
|
|
|
|
gimymblert
|
|
« Reply #354 on: March 19, 2019, 07:48:39 AM » |
|
Designing A Comprehensive Color System
|
|
|
Logged
|
|
|
|
|
gimymblert
|
|
« Reply #356 on: April 02, 2019, 09:17:32 AM » |
|
|
|
|
Logged
|
|
|
|
gimymblert
|
|
« Reply #357 on: April 28, 2019, 05:30:24 AM » |
|
|
|
|
Logged
|
|
|
|
gimymblert
|
|
« Reply #358 on: April 28, 2019, 02:53:38 PM » |
|
Generative Modeling with Modifiers (Blender 2.
|
|
|
Logged
|
|
|
|
|
|