我上周在学校做了一项任务,实现了计算斐波纳契数列中第n个数的函数."子指派"是使用累积(可能不是正确的翻译)来实现它,以便给出函数O(n)时间复杂度.这一切都很好,直到我尝试制作函数(Int - > Integer).通过实验,我意识到时间复杂度对于非常大的数字接近于O(n ^ 2).在我看来,这必须是因为Integer的实现,这使我对它的工作方式有点好奇.我做了一些谷歌搜索,没有找到任何看似有用的东西,所以我转向你们,希望得到一个解释或一个解释彻底的链接.
我的代码:
ackfib 0 = 0
ackfib 1 = 1
ackfib n = loop n 1 0 1
where
loop n n1 n2 i
| i < n = loop n (n1+n2) n1 (i+1)
| i == n = n1
| i > n = error "n must be greater than or equal to 0"
Run Code Online (Sandbox Code Playgroud)
我很感谢所有答案
尤
如果选择非标准缩进样式会有所不同吗?
这是我经常看到的风格:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class Test {
static public void main(String args[]) throws Exception {
FileInputStream fin = new FileInputStream("infile.txt");
FileOutputStream fout = new FileOutputStream("outfile.txt");
FileChannel inc = fin.getChannel();
FileChannel outc = fout.getChannel();
ByteBuffer bb = ByteBuffer.allocateDirect(1024);
while (true) {
int ret = inc.read(bb);
if (ret == -1)
break;
bb.flip();
outc.write(bb);
bb.clear();
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我更喜欢这种风格,一切都从下一行开始:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class Test
{
static public void main(String args[]) …Run Code Online (Sandbox Code Playgroud) 我是 OpenGL/JOGL 的新手。我正在试验照明:
gl.glEnable(GL2.GL_LIGHT1);
gl.glEnable(GL2.GL_LIGHTING);
Run Code Online (Sandbox Code Playgroud)
当我禁用第一行时,场景中的所有对象都会变得有些暗,但它们仍然有一些光。那光还能从哪里来?(这是我唯一的光源。)是否有一些我可以关闭的默认环境光?
我有一个运行一段时间的MySQL数据库,它有很多变化.最近我查看它,我注意到在某些情况下,我在相同的字段上加倍了索引.缺少一些索引,并且通常所有索引都存在大量混乱.
我想从表中删除所有索引.后来我有一个准备好的脚本,它将运行ALTER TABLE并添加相关索引.
有没有办法从表中删除所有索引?
在Django中,如何查询获取两个不同的值,如下所示?
profile_setting = (pSetting.objects.get(module="my_mod", setting_value=1) or
pSetting.objects.get(module="my_mod", setting_value=0))
Run Code Online (Sandbox Code Playgroud) 当我在没有退出的情况下从网站出来时,下次我浏览该网站时发现我在那里登录了?该服务器如何恢复浏览器的会话值?在这个过程中有没有机会被黑客入侵?其他人可以窃取恢复的会话值吗?请分享您对此的看法.提前致谢
我有一个包含以下列的mysql表:
group_id
game_id
user_id
message
last_update
Run Code Online (Sandbox Code Playgroud)
我希望让这个可以不存在两排,其中GROUP_ID为行x的值等于GROUP_ID为行Y和USER_ID为行x的值的值也等于USER_ID为y行的值.
因此,例如,假设我插入以下值:
group_id = 783
game_id = 34
user_id = 29237
message = none
last_update = 11233452
Run Code Online (Sandbox Code Playgroud)
以上数据,即使MySQL查询试图插入它,不应该如果行已经与GROUP_ID和USER_ID相同的组合存在创建一个新的行.有没有办法做到这一点?基本上,我试图让两个列一起工作,就像一个独特的索引.
在我看来,简单的shell脚本更容易处理命令行参数.
为什么运行make而不是./make.sh是标准的
在看了关于blobs的这个教程:第9频道之后,我正在考虑使用blob容器来保存一堆推文(存储每条推文的json).理想情况下,我想为一天中的每个小时创建一个blob引用,并在它们进入时向这个blob添加新的推文.问题是,方法UploadText(字符串)会覆盖blob的现有内容,是否容易将文本追加到现有blob的方法?
谢谢!
fun (json:string) ->
let account = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("DataConnectionString"))
let blobs = account.CreateCloudBlobClient();
let tempBlob = blobs.GetBlobReference("tweets/2010-9-26/17/201092617.txt")
tempBlob.Properties.ContentType <- "text/plain"
tempBlob.UploadText(json)
Run Code Online (Sandbox Code Playgroud) 我在某些情况下看到了交易使用情况,但从未真正理解应该在哪些情况下使用它们.应该如何以及何时使用交易(开始交易声明)?我已经读过微软不建议在触发器和存储过程中使用事务语句(commit,rollback).
sql-server stored-procedures transactions sql-server-2005 sql-server-2008
java ×2
mysql ×2
alter-table ×1
azure ×1
blobs ×1
coding-style ×1
compilation ×1
django ×1
graphics ×1
haskell ×1
indentation ×1
indexing ×1
integer ×1
makefile ×1
opengl ×1
session ×1
shell ×1
sql-server ×1
transactions ×1
windows ×1