背景.我想打印一张31^(1/2)的汇合表.我对表进行了以下递归定义. (Exchange 31^(1/2)与黄金比率和下表包含斐波那契系列). cf := ContinuedFraction tf := TableForm p[-1] = 0; p[0] = 1; q[-1] = 1; q[0] = 0; a[k_] := cf[Sqrt[31], k][[k]] p[k_] := a[k]*p[k - 1] + p[k - 2] q[k_] := a[k]*q[k - 1] + q[k - 2] s[n_] := Timing[Table[{k, a[k], p[k], q[k]}, {k, 8, 8 n, 8}]] // tf 时序快速增加.我不得不alt+. (堕胎)S [4]. 问题:处理递归功能时如何改善(Mathematica)性能? 解决方案 从快速(不彻底,承认)查看您的代码,看起来p和q均以两个上一个值递归定义.这意味着要计算n的
以下是关于 algorithm 的编程技术问答
Mathematica' cylindricaldecosposition 在已知的Algorithm complindrical cylindrical alge alge alge alge algebraic decomposent Wolfram MathWorld在 cylindrical代数分解上说,这种algorithis 说, cy 说,这个algorithis 说明了 cylgerbraic demanties /p> 可以使此陈述更加精确吗?具体而言,时间和空间与多元多项式变量的程度和数量有何关系?时间和空间是否取决于其他参数? 解决方案 tarski表明,对于包括量化器在内的每个公式,总是有一个等效的自由公式.从前者那里获得后者称为量化消除. (...) 特别是对于圆柱代数分解(CAD),操作的数量通常以双重指数方式缩放,并具有变量数量,而较新的方法在量化量的数量中是双重指数的. . 参考:MIT 6.972代数技术和Semide F
作为合成噪声算法的一部分,我必须在苍蝇上构造许多大型非鼻矩阵 a i,j (i,j:1..n)/∀(i,j)a i,j ∈ℤ > i,j ≤k和det [a]≠0 但是,在[0,k]中的均匀分布之后,a i,j 也应该是随机的. 在当前的化身中,问题有n≅300,k≅100. 在Mathematica中,我可以非常快地生成随机元素矩阵,但是问题是我还必须检查奇异性.我目前正在为此使用确定值. 问题是,对于300x300矩阵而言,此检查需要近2秒钟的时间,而我负担不起. 当然,我可以通过选择一个随机的第一行然后构造连续的正交行来构造行,但是我不确定如何保证这些行在[0,k]中的均匀分布后具有其元素. 我正在寻找Mathematica中的解决方案,但是也欢迎仅用于生成矩阵的算法. nb> u [0,k]条件意味着采用了一组矩阵,每个(i,j)遍布整个矩阵,应遵循均匀的分布. 解决方案 如果您在奇点测试中使用数字近似矩阵,您将获得更好的速
我最近发现了有关 kleene algebra 用于操纵和简化正则表达式. 我想知道这是否已成为Mathematica(例如Mathematica)的任何计算软件程序?拥有一个计算工具来进行工会和串联大型表达式并使计算机简化它们将是很棒的. 如果您不知道该代数内置的任何程序,您是否知道有任何程序可以使用新代数扩展其引擎? ? 解决方案 on http://www.maplesoft msw04finalprogram.pdf ,它指出: 有限自动机理论的基本结果之一是 著名的克莱恩定理,该定理指出一种语言是可以接受的 当且仅当有限的自动机可以用常规的自动机表示 表达. 和 常规算法处理的主要难度 但是,表达是简化的.虽然有几个 有关正则表达式的知名度,例如规则 对于克莱恩代数,没有有效的算法 解决正则表达式的简化问题. 和 在这种情况下,唯一剩下的方法就是发展启发式 简化正则表达式的算法.对于aut软件包, 本文概述了枫树程序rsimpli
我的朋友邀请我回家玩Secret Santa的游戏,我们应该在那里绘制很多东西并扮演"圣诞老人"的角色. 所以,我们写出所有名称并随机选择名称.如果我们中的任何一个最终都选择了自己的名字,那么我们再次改组并再次选择名字(理由是一个人不可能是自己的圣诞老人). 玩耍时我们中有七个 我想邀请有关如何使用Mathematica或任何编程语言甚至算法的各种想法: 列表/打印所有"有效"圣诞老人分配 随着玩"秘密圣诞老人"成长的朋友的数量 是可扩展的 解决方案 我提出了这一点: f[s_List] := Pick[#, Inner[SameQ, #, s, Nor]] & @ Permutations@s f @ Range @ 4 {{2, 1, 4, 3}, {2, 3, 4, 1}, {2, 4, 1, 3}, {3, 1, 4, 2}, {3, 4, 1, 2}, {3, 4, 2, 1}, {4, 1, 2, 3}, {4, 3, 1, 2}
我需要一个fortran代码来计算给定列表{1,2,3,...,n}的ITH置换,而无需计算所有排列,即n!. 有人可以帮助我吗?预先感谢您. 解决方案 对于大数字,以下实现保留了溢出错误. ! Fattoriale RECURSIVE FUNCTION factorial(n) RESULT(n_factorial) IMPLICIT NONE REAL, INTENT(IN) :: n REAL :: n_factorial IF(n>0) THEN n_factorial=n*factorial(n-1) ELSE n_factorial=1 ENDIF ENDFUNCTION factorial ! ith-permutazione di una lista
我在Mathematica中开发了适当快速的联合算法时遇到了一些困难.我有一个大型(〜100K元素)数据集的形式集 t = {{x1,y1,z1},{x2,y2,z2},....} 我想将其固定在大约100x100箱的2D阵列中,bin值由落入每个bin的z值的总和给出. 当前,我正在通过表的每个元素进行迭代,使用SELECT挑选应该基于BIN边界列表中的哪个bin,并将Z值添加到占据该垃圾箱的值列表中.最后,我将总计映射到垃圾箱列表中,总结它们的内容(我这样做是因为有时我想做其他事情,例如最大化). 我曾尝试使用聚集和其他这样的功能来做到这一点,但是上述方法的速度更快,尽管也许我使用的收集很差.无论如何,通过我的方法进行分类仍然需要几分钟,我觉得Mathematica可以做得更好.有人可以方便地有效算法吗? 解决方案 这是一种基于Szabolcs帖子的方法,大约更快. data = RandomReal[5, {500000, 3}]; (*500k valu
在重复列表中找到期间的最佳方法是什么? 例如: a = {4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2} 具有重复{4, 5, 1, 2, 3},其余{4, 5, 1, 2}匹配,但不完整. 该算法应足够快以处理更长的情况,例如: b = RandomInteger[10000, {100}]; a = Join[b, b, b, b, Take[b, 27]] 算法应返回$Failed如果没有上述重复模式. 解决方案 请参阅有关其工作方式的评论. (* True if a has period p *) testPeriod[p_, a_] := Drop[a, p] === Drop[a, -p] (* are all the list elements the same? *) homogeneousQ[list_List] := Length@Tally[list] === 1 homogeneo
我需要一种算法将HCl颜色转换为RGB和向后的RGB,以牢记这些颜色空间具有不同的范围(我需要将HCL颜色限制为可以在RGB颜色空间中复制的颜色).什么是算法(该算法旨在在 wolfram Mathematica 仅支持RGB颜色的本地颜色)?我没有使用颜色空间的经验. P.S.一些有关HCL颜色的文章: M. Sarifuddin(2005).一个新的感知均匀的色彩空间,具有相关的颜色相似性度量,用于基于内容的图像和视频检索. Zeileis,Hornik和Murrell(2009):图形//计算统计与数据分析第53卷,第9期,2009年7月1日,第3259-3270页 更新: 如 jonathan Jansson 在上面的两篇文章中,不同的颜色空间由名称" hcl"描述: "第二篇文章使用L c h(UV),与l u v*相同,但在极坐标中进行了描述,其中H(UV)是U的角度*和v*坐标和c*是该矢量的大小".因此,实际上我需要一种将RGB转换为L u v*和
为什么qname字段的内容不是 DNS消息中的原始域? 例如,如果我想获取域的IP www.mydomain.com,我将向网络发送DNS查找软件包,并且软件包的问题部分包含域. ,但实际上 Qname在软件包中的内容是 3www8mydomain3com0 而不是www.mydomain.com. 3www8mydomain3com0表示每个标签以本部分的长度开始,然后以内容为单位,最终为0. 那么,为什么我们使用长度+数据模式来描述域而不是原始域? 有一个查看本节4.1.2. Question section format描述我们如何在 rfc1035 (请搜索本节). 解决方案 (更改域名以获取堆栈溢出以关闭无法命名的域.) 例如,如果我想获得域的IP 那不是URL,它是一个域名.一个域名是URL的 part ,但URL将像http://www.qqqqsovr.com/homepage.html. 但实际上Qname在软件包中的
我需要以特殊方式向照片添加水印.我知道该怎么做,但是我不知道,如何以与此文章. 这是添加水印的方法.我如何更改它以使用上述文章中的水印来获取图像? public static Bitmap AddWatermark(this Bitmap originalImage, Bitmap watermarkImage, WatermarkLocationEnum location) { int offsetWidth; int offsetHeight; if ((watermarkImage.Width > originalImage.Width) | (watermarkImage.Height > originalImage.Height)) throw new Exception("The watermark must be smaller than the original image."); Bitmap backgrou
来自演示文稿:我确实遇到了这个项目: a wpf的图树绘图控制但是有很多代码,我很难找到一个简单的2-3方法来定义X值. (也没有WPF的经验) 我一直在搜索和实验几天,因此您的帮助非常感谢! ! 解决方案 我发现 jwpat7的答案非常有用,尽管我花了我一段时间,所以我花了我一段时间,找出该算法所需的确切逻辑,因此我写了我的这是您确定x节点位置的平淡文本逻辑: 从 post-order-post-order-post-order traversal 树的 如果是集合中的第一个,则将初始x值分配给0的每个节点,或者previousSibling + 1如果不是. 如果一个节点有孩子,请找到将其以子女为中心的所需的x值. 如果节点是最左边的节点,请将其x设置为该值 如果节点不是最左边的节点,请在节点上设置Mod属性(X - centeredX)以移动所有孩子,以便他们以此节点为中心.树的最后遍历将使用此Mod属性来确定每个节点的最终x值. 确
在寻找一种自动在Internet上放水标记的解决方案时,我在Stackoverflow中找到了最佳解决方案.这个问题的链接是 c# - 在照片中添加水印通过特殊的方式.我特别感谢 Alex Maslakov 和 Adrift . 我通过一些修改实现了该解决方案,我想将水印放在图像的中心.我修改了 Adrift 提供的解决方案,如下所示 private void button1_Click(object sender, EventArgs e) { using (Image image = Image.FromFile(@"C:\Users\Public\Pictures\Sample Pictures\Desert.jpg")) using (Image watermarkImage = Image.FromFile(@"C:\Users\Public\Pictures\Sample Pictures\watermark.png"
给定了两个从麦克风捕获的数据阵列,我该如何确定哪个噪声具有更多的噪音?我假设有一种可以应用于数据的算法,但我不知道从哪里开始. 依靠它,我需要能够确定婴儿何时在房间里哭泣与环境噪音. 如果有帮助,我正在使用microsoft.xna.framework.audio.microphone类来捕获声音. 解决方案 您可以通过应用公式 将每个样本(将每个样本(标准范围为1.0)转换为分贝等级 db = 20 * log-base-10(sample-value) 老实说,只要您不介意偶尔的假阳性,并且您的麦克风设置好,您应该没有问题,请不要说出婴儿哭泣和环境背景噪音之间的区别,而不会经历麻烦做FFT. 我建议您查看噪声门的源代码,该噪声门几乎可以使用可配置的攻击时间和阈值. 其他解决方案 首先使用快速傅立叶变换将信号转换为频域. 然后检查典型的"哭泣频率"中的信号是否明显高于其他振幅. Speex编解码器的预处理器支持噪声与信号检测,但我不知道
我正在尝试深入研究,以解决我们遇到的间歇性问题,我们在运行MSIEXEC对MSI时进行了一些重大升级安装,以评估作为维护安装. MSDN给出了并指出版本源自Productersion属性. 我的问题是如何?例如,'16 .48.31'如何转换为'0x1030001f(271581215)'? versionmajor和versionMinor分别是" 16"和" 48".另一方面,版本不是很多. 答案可能与我的问题无关,但我用尽了其他潜在客户来追踪. 解决方案 您的问题可能是您在更新设置中均未更新 Productversion 和 ProductCode 和软件包代码.这会产生次要升级而不是所需的主要升级. 软件包代码每次安装时都应始终更改,因为它仅应该是唯一的.如果两个MSI文件具有相同的软件包代码Windows安装程序,则根据定义将它们视为相同的文件,并且可能会导致真正的奇怪问题 - 包括您看到的行为. 我只想确保您不使用installshield i
我正在尝试在程序上打印一些UTF-8文本.当我执行普通打印功能时,它不会显示出来,但是在我使用#include,#include ,setmode(_fileno(stdout), _O_U16TEXT);和将printf转到wprintf之后确实有效.但是,在使用上面提到的这些行之后,它使我的所有普通打印线都看不见,并且只能可见UTF-8文本.我该如何解决? 这是我的代码: #include #include #include int main (){ setmode(_fileno(stdout), _O_U16TEXT); wprintf(L"░██████╗████████╗██╗░░░██╗██████╗░███████╗███╗░░██╗████████╗ ██╗░░░██╗░█████╗░████████╗██╗███╗░░██╗░██████╗░\n");printf("
Windows API/C/C ++ 1. .... 2. .... 3. .... 4. while (flag1 != flag2) 5. { 6. SleepEx(100,FALSE); //waiting for flags to be equal (flags are set from another thread). 7. } 8. ..... 9. ..... 如果旗帜在7秒钟后彼此不平等,我想继续第8行. 任何帮助将不胜感激.谢谢. 解决方案 如果您正在等待设置特定标志或达到时间的时间,则可以使用自动/手动重置事件的清洁解决方案.这些设计用于线程之间的信号条件,并在其顶部设计了非常丰富的API.例如,您可以使用waitformultipleObjects API,该API需要明确的超时值. 其他解决方案 不要轮询更改标志的旗帜.即使在循环期间睡觉或产量,这也只是浪费了CPU周
例如,在Windows文件夹中,如果我们创建了一些文件并将其命名1.html,2.TXT,3.TXT,Photo.jpg,Zen.png,则该订单将不按原样.但是,如果我们使用名称_file.doc创建另一个文件,则将放置在顶部. (考虑到我们按降序按名称排序) 同样,将被视为第一个的字符是什么,这样,如果我使用该字符,它将将文件放在层次结构上? ? 解决方案 第一个可见字符是'!'根据ASCII表,最后一个是"〜" 因此,"!file.doc"或" 〜file.doc'将是您的排名顺序的最佳. 您可以在此处检查ASCII表: 其他解决方案 我也有同样的问题.我想在类似的底部"埋葬"一个文件夹,而不是将其带到顶部.特点. Windows识别大多数特殊字符,只是"特殊",因此它们都在顶部排序. 但是,如果您在英语角色之外思考,您会发现很多运气.我使用了角色图和arial字体,向下滚动"〜",然后将其他字体滚到希腊字母. Capitol XI,ξ,最适合我,但我没有检查哪
如果我有一个日期,我该如何计算该年内该日期的一周号? 例如,2008年1月1日至1月6日在第1周,1月7日至13日是第2周,因此,如果我的日期是2008年1月10日,我的周数将为2. . 算法很棒,可以让我开始,示例代码也会有所帮助 - 我在Windows上的C ++开发. 相关: 在MS SQL Server 2005? 解决方案 伪代码: int julian = getDayOfYear(myDate) // Jan 1 = 1, Jan 2 = 2, etc... int dow = getDayOfWeek(myDate) // Sun = 0, Mon = 1, etc... int dowJan1 = getDayOfWeek("1/1/" + thisYear) // find out first of year's day // int badWeekNum = (julian / 7) + 1 // Get our
最近看到了这个问题: 给定的2个数组,第二个数组包含第一个数组的某些元素,返回包含第二个数组的所有元素的第一个数组中的最小窗口. 例如: 给定A = {1,3,5,2,3,1}和B = {1,3,2} 输出: 3,5(其中3和5是阵列中的索引) 即使范围1至4也包含a的元素,返回范围3至5,因为它包含它的长度小于先前的范围((5-3) 我已经设计了一个解决方案,但我不确定它是否正常工作并且也不有效. 为问题提供有效的解决方案.预先感谢 解决方案 一个简单的在列表中迭代的解决方案. 有一个左右指针,最初都在零处 向前移动正确的指针,直到[l..r]包含所有元素(或者如果右边到达末端,请退出). 将左指针向前移动,直到[l..r]不包含所有元素.看看[l-1..r]是否比当前最佳. 这显然是线性时间.您只需要跟踪子阵列中的每个元素中的每个元素中的数量即可检查子阵列是否是潜在的解决方案. 该算法的伪代码. size = b