本网站由以下捐款支持:OEIS基金会

用户:M.F.Hasler/动态内容

来自OeisWiki
跳转到:航行,搜索

此页面是关于动态内容在OEIS上,即可以(可能应该)由web服务器软件或客户端(javascript,…)计算的OEIS记录的几个部分(在特定的链接、程序、b文件、列表、表格和图形中),而不是由提交者计算/编写和/或存储&检索为静态文件或记录的一部分。

有很多这样做的可能性,在许多情况下,几乎不需要对服务器软件进行任何更改,也不需要额外的服务器负载,请继续阅读。

动态内容

基本原则

标题中定义的动态内容可以通过多种方式生成和存储:

  • 提交捐款后(待讨论,可能取决于具体项目,是否应在提议捐款后立即完成,或在“批准”后完成)。
最肯定的是,大多数进入“记录”本身的材料都应该是这样的(LINKS,…;程序可能是一个例外,因为有太多可能的语言,所以按需制作它们更合理),而不是支持文件(b-file,graphics,…)
  • 根据请求在服务器端(例如,通过固定链接或汇总表单生成的b文件,例如通过在“输入”文本字段中输入所需的字数并点击“回车”)。根据具体情况,这可能会生成一个“永久”存储的文件,只缓存一段固定时间(几天或几个月),或者只发送给客户端而不存储在文件中。
  • 在客户端,通过javascript或类似的方式。请参见以下示例#实施用于为线性递归定义的序列生成给定数量的术语的Javascript。
  • 其他一些基本形式的“动态内容”已经实现或可以添加在提交表格上:
    • 根据现有序列检查DATA,
    • b文件的LINK创建/完成(作者姓名和MIN/MAX)
    • 更多这类内容将非常有用,例如,SeqFan帖子或维基百科页面的模板。

关键词

  • 关键词可以在动态内容中发挥重要作用。一个极简主义的想法已经通过“tabl”关键字实现了,它产生了一个链接,将序列显示为三角形、方形数组或右上三角矩阵。
带参数的关键字:[用户:M._F._Hasler/Work_in_progress/Improvements_of_OEIS#I._Keywords_with_parameters请参阅本页],详细介绍带参数的KW如何轻松添加许多有趣的功能,适用于多种类型的序列:tabl、cofr、frac、lrec。。。。
一个具体而简单的例子是“lrec”关键字:对于线性递归,我们有以下几种:
  • 要么我们有一个链接(通常是最后一个)提供签名。该链接的存在可以切换“lrec”关键字,签名作为附加参数。
  • 但是,当“lrec”KW存在时,也可以动态生成该链接:要么将签名作为附加参数,要么将订单作为附加参数或不使用附加参数:订单和签名可以通过DATA确定。(这也可以在没有lrec KW的情况下进行,但存在误报[DATA可能建议lrec,而我们实际上没有lrec。然后手动添加的“lrec”KW将确认推测的lrec。和/或丢失的“lrec”KW可能会切换注释“DATA表明这是##顺序的lrec,签名(…),但缺少“LREC“关键字表明情况可能并非如此。如果你能证明或反驳,请添加评论。”)
  • 给定签名,我们可以*容易地*(例如,标准JavaScript)计算任何所需数量的项。这些可能
    • 在DATA部分中递增添加,和/或
    • 通过自定义的“b-file”链接(可能包含一个输入字段,用于输入所需的长度和/或所需的格式,可以动态生成、客户端生成(例如通过JS)或其他方式生成)。
  • 对签名的了解还可以直接生成各种语言的各种程序(参见第…页)

链接

  • 对于“lrec”序列,可以自动生成指向“递归…签名(…)的索引条目”的链接。例如,假设要解析扩展关键字“lrec:c1:c2:…:cN”:
/*假设$kw对线性递归a(n+1)=1*a(n)+4*a(n-1)+……保持“lrec:1:4:3:1”*/$coeffs=preg_split(“:”,$kw)$order=sprintf(“%02d”,计数($coeffs)-1);$signature=内爆(“,”,array_slice($coeffs,2));$链接。=“\n<a href='/index/Rec#order_$order'>对具有常系数的线性递归进行索引,顺序”.(int)$订单。“,签名($signature)</a>”;
  • “lrec”关键字可以用系数作为附加参数,或使用LINKS部分的数据,或通过分析data字段,作为一个链接,弹出一个请求者,为用户选择的一系列索引和格式生成data(b文件,“[x,y,…,z]”格式的列表,或…)
  • 如上所述,链接到一些标准网站,例如:wikipedia.org、seqfan.eu、mathworld,。。。可以半自动处理:将裸链接粘贴到编辑字段的空行中(可能点击一些按钮)可以用所需内容“装饰”它:Author、HREF标记、进一步解释。
/*假设LINKS部分更新为仅包含裸链接的新行*/$links=爆炸(“\n”,$links);foreach($links作为$index=>$line):如果($pieces=preg_match('/\$http.*[.]seqfan.eu/pipermail/seqfan/\)\(2015年\)-\([A-Za-z]*\).*/',$line):$links[$index]=“作者,Title_Of_The_Post,SeqFan邮件列表,$pieces[3]$pieces[2]。”elseif($pieces=preg_match('/\$http.*[.]wikipedia.org/wiki/\(.*\)/',$line):$links[$index]=“维基百科,<a href='$line'>$pieces[1]</a>,检索日期”.date(“M d Y”)。“。”;elseif(…其他类似检查…):endif;每端;$links=内爆(“\n”,$links);

其他可能性

...

启动位置

头脑风暴和讨论

[此部分页面将重新格式化并“维基化”……任何人都可以随意编辑和/或添加您的评论!]

在这一部分的上方是“精炼内容”,下面是初步的头脑风暴,可能需要重新措辞、维基化等,具体如下:


基本思想

【2011年2月10日发送给中编辑的电子邮件】

亲爱的“员工”:,

对非常基本的序列(m^n mod p)进行了一些小的编辑,我有一个想法想提交,因为它值得。

基本上,它是为非常简单的序列“运行”创建b文件(也许还有其他东西)的想法。例如,对于周期性序列,我认为它会为服务器创建和/或发送“任意”大小的b文件创建最小的负载。

可以想象有几个链接用于接收1000、10000或100000个术语,例如。

“n,a(n)表<a href=“http://oeis.org/A000004/b000004.txt?1000“>n=1…1000-<a href=“http://oeis.org/A000004/b000004.txt?10000“>n=1…10000-<a href=“http://oeis.org/A000004/b000004.txt?100000“>n=1…100000”

根据服务器的首选内容,一旦创建了它们,就可以将其缓存一段时间,或者永久保留在那里,然后可以建立到该b文件的“硬连接”链接。

这可以用几行脚本进行编码。

为此,可以实现关键字period:N(其中N是句点的长度),然后使用%S行中已经存在的术语创建术语(前提是有足够的术语对应于至少一个完整的句点,前面可能有一些不属于句点的初始术语)。

对于系数恒定的线性递归也可以这样做,而且实际上不需要计算能力。

或者,这些链接可以通过在客户端(即在访问者浏览器中)执行非常简单的Javascript来生成请求的数据,以便根本没有服务器负载将生产;由于搜索引擎和其他机器人反复下载所有(部分巨大)b文件,它甚至可以节省现有服务器的负载和带宽。【2015年6月27日添加备注】

在第二步中,可以进一步自动创建代码段(在PARI、C、Maple…中)对于这些序列;至少对于周期序列,而且对于线性递归(其中包括所有多项式序列),这同样非常容易(1行代码)。如果这个想法被“系统大师”所接受,我愿意编写代码(例如用PHP)来创建所需的输出。

当做,

马克西米利安

PS:可能是中间体(或者更好?)解决方案是在“编辑”屏幕上提供一些按钮,用于创建这些元素(b-file&link;PARI/Maple/…code),然后静态添加它们,而不更改OEIS的正常功能。

查尔斯·格里特豪斯的回复

我经常考虑自动显示简单序列,例如线性递归。可能有在OEIS中有5-10000个这样的序列,并且它们的质量是不均匀的。做这样的项目将是一个带来这些的机会所有序列都达到了相同的水平,并提供了新的工具。(另外,一个希望这将减少形式,“%F a(0)=x,a(n)=y+a(n-1)”…)

可以做的事情示例:

  • 正如Maximilian所建议的那样,自动生成b文件。这可以是一次性的(创建b-files和链接,格式为“Autobot,Table of n,a(n)for n=0..10000”)、按需的(单击链接,创建并存储一个新的b-file)、静态的(从未存储过b-file,但它们是根据需要生成的)、,或客户端(服务器只发送代码片段,查看器的计算机使用该代码片段生成b文件)。最后一个几乎不需要任何资源,但不允许绘图。
  • 用多种语言生成术语的程序。OEIS中有数千个多项式序列,太多了,甚至三种主要语言也没有代码,但其他(例如Scheme)几乎没有覆盖范围。通过将它们“放在一个地方”,我们可以用多种语言编写高质量的代码。
  • 基本属性可以以标准格式列出。这将更容易作为用户搜索它们,并确保所有属性都在那里。例如:我可能查找一个序列,希望找到它的渐近增长,但许多序列没有列出它。对于所有线性递归,在一个地方这样做并不难。(还有哪些其他类型的序列可以类似地参数化?)

马克西米利安,也许你应该在维基上做一个页面来讨论这个问题?查尔斯·格雷特豪斯2011年2月10日


这“完成了”——好吧,几乎。。。 ;) —M.F.哈斯勒2011年2月10日16:07(UTC)

另请参见

本文件的历史