the one-but-last list [4]. After running out of the n- items avalaible it should continue with the second item of list 0 and so on for all items on all the lists.
Intput, six lists of 30 items each
[0] (n=30)
[1] (n=30)
[2] (n=30)
[3] (n=30)
[4] (n=30)
[5] (n=30)
Output, 18 lists of 10 items each
[0],i=0;[5],i=4; [4],i=7;...
[0],i=1;[5],i=5; [4],i=8;...
...
[5],i=1;[4],i=5; [3],i=0;...
I thought perhaps the weave component or the relative tree item component but didn't manage to figure out how to compose the mask. I couldn't find much on how to use these. I guess it should wrap the lists, but not the items.
Any help would be greatly appreciated.…
Added by Thorsten Lang at 2:27am on January 24, 2011
nch, xno items in one list)2 divide the list lenght value by the numer of items per branch needed3A generate a list with the series component: the step equal to the target numer of items per branch; the no of items equals the number of target branches
3B generate a list with the series component: the first number of the series equals to the number of items needed (-1 to account for the 0 index); the step size again equal to the target number of itmes per branch as 3A4 feed 3A & 3B to a domain component thus identifying the start -3A- and end -3B- of the domains by which the list will be subdivided5 use a subset component with the domains above thus creating 19 branches with lists having 5 items eachfor lists which are subdivided into branches when the target number of branches is not a multiple of the number of items contained in the list:6 identify if the target number of branches is a multiple of the list by using the modulus component fed by the list lenght -1- and the target number of branches7 identify last index in the 3B series with the item component (reversed to take the last value fed)8 add 6+7 above which dill define the start of the domain that will pick up the remanent items not accommodated in 59 add (+1) to 7 above to define the end of the domain that will pick up the the remanent items not accommodated in 510 feed 8 & 9 to a domain component11 include 10 as part of the subset in 5I'm now trying to understand the components mentioned by Michael...
sn
…
t, let's talk about randomness. Randomness is a problem in computing because digital computers are deterministic. If you give them the exact same instructions they always end up with the exact same result. It turns out to be mathematically impossible to generate true random numbers using a digital computer, but it is fairly easy to generate pseudo-random numbers. This is actually not bad news as pseudo-random numbers -unlike real random numbers- can be generated again and again and you'll end up with the same random numbers every time. Being able to get the same random numbers on demand increases the reliability of these number sequences which in turn makes them easier to use.
Pseudo-random numbers are numbers that have certain characteristics. Note that when we talk about random numbers we are really talking about numbers. Plural. It's easy to generate only a single one, as xkcd so eloquently put it:
So what are these characteristics that define pseudo-randomness? Without being actually correct, I can sum them up as follows:
The sequence of generated numbers should never repeat itself*
The numbers in the sequence ought to be spread evenly across the numeric domain**
There are a lot of different algorithms out there, some better than others, some faster than others, some solving very specific problems while others are more generic. The generator used in Grasshopper is the standard Microsoft .NET Random, based on Donald Knuth's subtractive algorithm.
So let's imagine we want random integers between 0 and 10. What would a bad random sequence look like?
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 (about as bad as it gets)
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 (not random at all)
1 3 2 5 3 9 1 2 4 2 5 1 1 2 8 1 5 2 3 4 (too many low numbers)
2 8 4 6 0 9 8 2 4 8 6 4 2 2 5 1 4 8 6 2 (too many even numbers)
So what about good sequences? Well, here's a few:
6 9 1 2 0 4 2 8 5 7 2 9 1 9 2 5 3 1 9 2 (sure, why not)
6 2 5 3 4 1 9 7 8 0 2 1 6 4 5 8 9 5 0 9 (looks about right)
1 8 5 2 3 4 5 7 9 5 2 1 0 2 1 0 9 7 6 4 (I suppose)
9 0 6 4 8 3 1 5 2 7 6 1 4 6 0 1 9 7 5 6 (whatever)
There are a lot of valid pseudo-random sequences. (Seriously, loads). So even if we have a good pseudo-random generator we may be given a random sequence that isn't entirely to our liking. The shorter the sequence we need, the more likely it is that statistical aberrations invalidate that particular sequence for us. What we need is some control over the generator so we don't just get a repeatable sequence, but a repeatable sequence we actually like.
Enter seed values. The random generator requires a seed value before it can generate a random sequence. These seed values are always integers, and they can be any valid 32-bit integer. Every unique seed value results in the same sequence. Every time.
Unfortunately there is no clear relationship between seeds and sequences. Changing the seed value from 5 to 6 will result in a completely difference random sequence, and two sequences that are very similar may well have to wildly different seeds. There is therefore no way to guess a good seed value, it is completely trial-and-error. Also because of this extremely discontinuous nature, you cannot use tools like Galapagos to optimize a seed value.
If you are looking for a pseudo-random sequence which has custom characteristics, you may well end up having to write your own generator algorithm. Ask questions about this on the Grasshopper main forum or the VB/C# forum.
Conclusion: Seed values are integers that define the exact sequence of pseudo-random numbers, but there's no way of knowing ahead of time what sequence it will be and there's no way of tweaking a sequence by slightly changing the seed. Even the tiniest change in seed value will result in a radically different random sequence.
--
David Rutten
david@mcneel.com
Poprad, Slovakia
* This is not actually possible. A finite amount of numbers always repeats itself eventually.
** This should only be true for long enough sequences, short sequences are allowed to cluster their values somewhat.
Interesting links for further reading:
Coding Horror: Computers are Louse Random Number Generators
StackOverflow: When do random numbers start repeating?…
Added by David Rutten at 9:52am on October 20, 2012
ant to find all paths where exactly two items are the same like in branch {1}. How can I solve this in VB? Is there an easy "search in list" class or do I have to iterate over all items by myself ??
Regards Alex…
another example could be:
index 3 value 6
index 4 value 6
index 5 value 6
flipped and branched:
branch 6 index 0 value 3
branch 6 index 1 value 4
branch 6 index 2 value 5
Added by Ante Ljubas at 12:50pm on October 22, 2010
{0;1;0}N=6
{0;1;1}N=6
{0;1;2}N=5
{0;2;0}N=7
{0;2;1}N=8
{0;2;2}N=9
Can you shift and wrap any of the paths A B or C?
Say if I wanted to shift and wrap B by 1 to get the following...
{0;0;0}N=7
{0;0;1}N=8
{0;0;2}N=9
{0;1;0}N=3
{0;1;1}N=2
{0;1;2}N=5
{0;2;0}N=6
{0;2;1}N=6
{0;2;2}N=5…
ll these 12500 points.
Group 1 would represent the point located at 0, 5, 10, 15, 20 etc.
Group 2 - 1, 6, 11, 16, 21 etc.
Group 3 - 2, 7, 12, 17, 22 etc.
Group 4 - 3, 8, 13, 18, 23 etc.
Group 5 - 4, 9, 14, 19, 24 etc.
I can create the pattern but the selection of points are all the points in row 0 and then all the points in row 5 and so on.
I would like the selection of points to start at the bottom left, and sequentially continue to the right and then continue on the 2nd row (left to right & bottom to top). i am hoping the pattern i am trying to achieve is more understood with the quick screen capture I uploaded.
the end goal is to be able to select all the points in the grid that are in each pattern.
Thanks in advance for any guidance with this. …
Added by Alyne Rankin at 6:53am on October 11, 2017
a follow up question... how do I wrap a list onto itself at a certain frequency?
i.e. I want the list {1;2;3;4;5;6;7;8;9}
to become {1,4,7; 2,6,8; 3,6,9} wrapped every 3rd item
Added by Joshua Jordan at 5:30pm on November 17, 2012