Tag: algorithm

如何编辑此algorithm,以便创build组合而不更换或重用元素?

我对计算机科学很陌生 – 这是我的第一个程序。 我写了一个python程序,它从excel表格“Labels”中的两列中获取数据:“Values”,并将它们重新configuration为各自值总和为30的标签列表。每个标签是唯一的,只出现一次,但不同的标签可以具有相同的价值。 但是,当我第一次使用我的程序时,运行时间接近30分钟,因为algorithm创build了标签的所有可能的组合。 显然给出了50个值小于10的标签,这是很多可能的组合。 我想要一些帮助编辑我的当前algorithm,以便它创build唯一的组。 一旦使用了标签,我不希望它出现在任何其他组中。 目前我的代码如下所示: def combinator(X): #this function pulls two lists together to create a dictionary from xlrd import open_workbook wb = open_workbook(X) L = [] P = [] for s in wb.sheets(): for col in range(s.ncols): for row in range(s.nrows): if row !=0: l = s.cell(row,0).value L.append(l) p = […]

Excel公式中的简单代数

我正在尝试让Excel为我解决“X”。 (X-100)/ X = 60%或(X-100)/X=.6 “100”数据是我将根据需要改变的单元格。 基本上我想input一个数字来代替“100”,并给予相当于该数字的60%GP的数字。 我希望这是有道理的。 谢谢

如何确定最佳秩序以最大限度地发挥影响

免责声明:这个问题更多的是与纯Python代码(或Excel求解器)问题相关的algorithm问题 我们目前正在将600多个网站迁移到新平台。 部分工作是将组件(30+)的代码移植到新平台。 为了解决这个问题,我们已经对每个站点上的每个组件的使用情况进行了清点: 现在,我们应该find我们要以何种顺序移植组件。 基本规则如下:一旦给定网站使用的所有组件被移植,网站就可以被移植。 目标是尽可能最大限度地提高我们可以迁移的地点的数量。 在我的例子中: 如果我们开始移植比较。 B,即使比较,我们也无法迁移网站。 B被大量使用。 所以我不会从Comp开始的。 B. 如果我们开始移植比较。 A,我们将能够迁移站点2并与其他站点一起前进。 因此,Comp。 A可能是一个很好的候选人 那么,我们可以转向Comp。 C,Comp。 D和最后比较。 乙 这是相当容易的4个组件和5个网站,但是与我们必须处理的数额是一个真正的噩梦。 什么将是一个系统的方法?

舍入到最接近的整数偶数

我想一个简单的math问题,我正在寻找一个algorithm来凑到最接近的整数偶数 4.4 = 6 5.1 = 6 2.1 = 4 1.9 = 2 etc…. 如果你可以给我VBA的语法,这将是真棒。 我知道excel as =even(..)函数,但是我不能在VBA中使用它。 谢谢

为什么需要重复减1?

这个问题是基于这个线程编程谜语:你怎么可以翻译一个Excel列的名称为一个数字? 这里是从这个问题的代码翻译列号到Excel列名 public String getColName (int colNum) { String res = ""; int quot = colNum; int rem; /*1. Subtract one from number. *2. Save the mod 26 value. *3. Divide the number by 26, save result. *4. Convert the remainder to a letter. *5. Repeat until the number is zero. *6. Return that bitch… […]

在R中使用的线拟合algorithm/包将满足一定的标准

我有一个特定的问题,我需要一个适合于一组数据的方程,我可以提取一个通用函数(可能很复杂),这会给我一个非常接近数据的Y值 – 就像我用数据作为查找表。 我一直在阅读各种方法和多元自适应回归样条[MARS]看起来是一个很好的候选人。 我所面临的问题是,它不是在数据的一个非常重要的部分检测/安装铰链。 我主要在地球软件包中使用R,目的是将公式放入Excel中。 我可以使用其他语言或包,如果它会给我我需要的结果。 问题:在我的数据的低端,我有一个小的一组值,这是一个重要的下界,需要有一个铰链或结放置。 其余的数据应该有自动的铰链/结检测。 例如:XY 0 130 1 130 10000 130剩下的X超过10000,并以不同的速率增加Y. 如果我预测(模型,5000),我会得到150的结果。 这条线需要一个平坦的线性段,然后铰接在10000处。由于缺less铰链,导致在MARS模型输出中X的所有高值都非常精确,但是X的低值与基础数据显着不同。 我宁愿不手动放置这个低端可能会改变,我想一个广义的方法。 有没有人知道类似MARS的方法可以提供 自动结/铰链检测 输出是一个我可以放入Excel的公式 如果自动检测在重要部分上失败,则可以手动指定要closures的点。 MARS方法适用于数据中的所有其他断点,但由于下限的“范围”有限,所以即使closures修剪,也不会在其中放置铰链。 有谁知道更好的方法?

VBA使用recrusive而不是循环

我想问你的帮助来解决我正在构build一个algorithm的问题。 可用的数据 我们有一个10行30列的数据表。 每行对应于链接到特定参数的variables(例如苹果的重量,梨的重量,桔子的重量…参数10) 每列对应于variables可以采取的值。 我们如何为每个variables/参数设置30个可能的值。 algorithm的目标给这些参数的所有可能组合的总和(苹果+梨+桔子+ … +参数10),通常应该有30 ^ 10种可能的组合 我的版本的algorithm的描述 这是创build一个数组10,比方说,索引。 每个索引对应于variables/参数。 每个索引由30个可能值中的一个填充。 创build一个循环通过同一行中的列。 表中单元格的每个值都放在相应的索引(第1行,索引1) 每个更改对应于同一行中具有不同列的下一个可用值(右侧)。 当列终止时,algorithm开始为下一行做相同的操作。 数组variables中的每一个变化都必须给出一个新的和,并复制到表中某个新的单元格中。 Sub AlgoSum() Dim rw As Long, column1 As Long Dim Sum1(9) As Long 'The array with 10 index 'First difficulty is to find a way how to synchornize the sum with every change in array […]

C#algorithm(大数据),用于查找Excel中多个列和工作表中的重复行

我正在尝试devise一种algorithm,用于跨多个工作表查找Excel文件中的重复行。 假设如下: 1)文件可能非常大。 考虑一个文件有10个工作表(每个1,048,576行),并说30列的数据 2)重复行可能不在同一个工作表上。 例如Sheet1 / Row20可能是Sheet5 / Row123456的副本 3)为了确定一行是否与另一行重复,可以使用其中一列或多列作为用户指定的条件(并非总是所有的列必须相同,用户可以例如指定重复的时间第2,3和5列是相同的) 4)底层数据的顺序不能改变(不先sorting数据,然后检查相邻行)。 5)algorithm必须具有记忆效率。 将一行中所有列的值存储在字典中将占用太多的内存。 不是所有的数据都可以同时存储在内存中(读入.NET multidim数组),因为它已经存储在Excel中,所以这会使内存使用量增加一倍。 6)algorithm必须使用Excel对象模型最小化IO。 不断从Excel中检索单行数据(或执行其他内置Excel互操作)可能会很慢。 到目前为止,我对algorithm有两个不同的想法: algorithm1) a)创build一个字典<int,List <Tuple <int,int>,其中字典键是特定行中列中所需值的哈希值,List <Tuple <int,int>是工作表的列表计算到该散列码的索引/行索引 b)一次从Excel中读取大量的数据(比如说5万行)并填写词典。 c)findList中Count> 1的字典中的所有条目,然后遍历所有行,并通过再次从Excel中读取数据并比较实际值来检查是否有重复 algorithm2) 类似于algorithm1,但是使用两个(或者三个)不同的和独立的散列函数来创build一个Tuple <int,int>或者Tuple <int,int,int>作为Dictionary的键。 如果散列函数是独立的,那么除非行实际上是相等的,否则将有一个接近0%的概率,即在一个特定的键上存在冲突。 步骤1c)因此可以省略。 要得到在algo1中使用的hashkey,我会做这样的事情: private int GetHashKey(List<object> columns) { int hash = 23; foreach (var o in columns) hash = hash * 31 + […]

Excel图表平滑algorithm

我需要在JavaScript中编程平滑我的“图表生成器”。 Excel的变体做的很不错,但我没有提出使用什么algorithm的build议。 我试图通过编写macros来获得VBA代码,但是我所得到的是(预期的) ActiveChart.SeriesCollection(1).Smooth = True 有谁知道Microsoft Excel使用哪种algorithm来平滑图表或查看代码的方式? UPD:对于那些发现这个问题,并有同样的问题,我可以推荐这个SVG解决scheme与JavaScript源代码

使用VBAfilterfunction时的性能注意事项

我无法弄清楚过滤function如何工作如此之快。 我已经在各种数据上使用filter,而不pipe数据types如何,filter消除了我使用的任何替代方法。 我经常使用二进制searchalgorithm和Stephen Bullen编写的QuickArraySortalgorithm(在Professional Excel Development中find)。 二进制search闪电般快(与Filter函数一样快,因为数组已经sorting),Quick Sortalgorithm是已知的最快的sortingalgorithm之一。 我已经写了一些testing代码,比较了在一个非常大的数组(大小= 2,000,000)中find一个随机元素的速度。 我故意以无序的方式填充数组(应该注意的是,我已经尝试了各种无序分配方法,结果是相似的,无论分配方法)。 Sub SearchTest() Dim i As Long, strMyArray() As String, lngSize As Long, strTest As String Dim TimeBinarySearch As Long, TimeFilterSearch As Long Dim lngResultBinary As Long, lngResultFilter As Long Dim StartHour As Long, StartMinute As Long, StartSecond As Long Dim StartMiliSecond As Long, StartTime […]