本文介绍了算法均匀分布物品进入3列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在寻找一种算法,将均匀地分配1到许多项目分为三列。没有列可以有一个以上的比任何其他列更多的项目。我输入了我要找的下面一个例子。加起来COL1,col2的,和COL3应该等于ItemCount中。
编辑:另外,这些项是字母数字的,必须在塔中排列。在列中的最后一个项目必须小于在下一列中的第一项。
产品COL1,col2的,COL3 A A AB A,B 农行A,B,C ABCD AB,C,D ABCDE AB,CD,E ABCDEF AB,CD,EF ABCDEFG ABC,DE,FG ABCDEFGH ABC,DEF,GH ABCDEFGHI ABC,DEF,GHI ABCDEFHGIJ ABCD,EFG,HIJ ABCDEFHGIJK ABCD,EFGH,IJK解决方案
在这里你去,在Python:
NUMCOLS = 3 数据=ABCDEFGHIJK 对ItemCount中在范围(1,12): 子数据= DATA [:ItemCount中] Col1Count =(ItemCount中+ NUMCOLS - 1)/ NUMCOLS Col2Count =(ItemCount中NUMCOLS + - 2)/ NUMCOLS Col3Count =(ItemCount中+ NUMCOLS - 3)/ NUMCOLS COL1 =子数据[:Col1Count] COL2 =子数据[Col1Count:Col1Count + Col2Count] COL3 =子数据[Col1Count + Col2Count:] 打印%2D%5S%5S%5S%(ItemCount中,COL1,col2的,COL3) #打印: #1 #2 A B #3 A B C #4 AB C D #5 AB CDË #6 AB CD EF #7 ABC DE FG #8 ABC DEF GH #9 ABC DEF GHI #10 ABCD EFG HIJ #11 ABCD EFGH IJKI'm looking for an algorithm that will evenly distribute 1 to many items into three columns. No column can have more than one more item than any other column. I typed up an example of what I'm looking for below. Adding up Col1,Col2, and Col3 should equal ItemCount.
Edit: Also, the items are alpha-numeric and must be ordered within the column. The last item in the column has to be less than the first item in the next column.
Items Col1,Col2,Col3 A A AB A,B ABC A,B,C ABCD AB,C,D ABCDE AB,CD,E ABCDEF AB,CD,EF ABCDEFG ABC,DE,FG ABCDEFGH ABC,DEF,GH ABCDEFGHI ABC,DEF,GHI ABCDEFHGIJ ABCD,EFG,HIJ ABCDEFHGIJK ABCD,EFGH,IJK解决方案
Here you go, in Python:
NumCols = 3 DATA = "ABCDEFGHIJK" for ItemCount in range(1, 12): subdata = DATA[:ItemCount] Col1Count = (ItemCount + NumCols - 1) / NumCols Col2Count = (ItemCount + NumCols - 2) / NumCols Col3Count = (ItemCount + NumCols - 3) / NumCols Col1 = subdata[:Col1Count] Col2 = subdata[Col1Count:Col1Count+Col2Count] Col3 = subdata[Col1Count+Col2Count:] print "%2d %5s %5s %5s" % (ItemCount, Col1, Col2, Col3) # Prints: # 1 A # 2 A B # 3 A B C # 4 AB C D # 5 AB CD E # 6 AB CD EF # 7 ABC DE FG # 8 ABC DEF GH # 9 ABC DEF GHI # 10 ABCD EFG HIJ # 11 ABCD EFGH IJK
更多推荐
算法均匀分布物品进入3列
发布评论