小编Pra*_*nth的帖子

Python:创建大小n ^ 2元组的时间和空间复杂性

这是我学校过去一年中期论文的问题.下面附有一张图,用于显示机器人如何从同一张纸上移动.我的担忧在橙色部分中说明.

在此输入图像描述

基本上,只要机器人遇到左侧未看到的网格方块,机器人就会向前移动并向左转.

给予机器人横向3号网格的指令序列是:('F','T','F','T','F','F','T','F',' F','T','F','F','F')其中'F'表示向前移动一个方格,'T'表示向左转90度.请注意,最后一条指令会导致机器人退出网格.函数gen_seq将网格的大小作为输入,并返回机器人横向网格的指令序列.指令序列是一个包含字符串'F'和'T'的元组,它们代表forward和turn命令.

提供函数gen_seq的递归或迭代实现.提示:Recall int可以与元组相乘.

说明实施时间和空间的增长顺序,并解释您的答案.

这些是markscheme中建议的答案.

def gen_seq(n): # recursive
    if n == 1:
        return ('F',)
    else:
        side = ('T',) + (n-1)*('F',)
        return gen_seq(n-1) + side + side + ('F',)

def gen_seq(n): # iterative
    seq = ('F',)
    for i in range(2, n+1):
        side = ('T',) + (n-1)*('F',)
        seq += side + side + ('F',)
    return seq
Run Code Online (Sandbox Code Playgroud)

时间:O(n ^ 3).在每个函数调用(递归)或循环(迭代)中,创建螺旋的每个"层"的路径长度的新元组.由于螺旋的长度是n ^ 2,并且有n个函数调用或循环运行n次,因此总时间是n ^ 2*n = O(n3).换句话说,它是平方和:1 ^ 2 + 2 ^ 2 + 3 ^ 2 + ::: + …

python big-o tuples space-complexity python-3.x

8
推荐指数
1
解决办法
622
查看次数

参数“documentPath”的值不是有效的资源路径。路径必须是非空字符串

我想编写一个云函数来侦听是否在following某些文档的子集合中创建了新文档users。然而,先前创建的用户文档可能没有子集合following

\n\n

换句话说,我想要一个响应db.collection(\xe2\x80\x9cusers\xe2\x80\x9d).doc(\xe2\x80\x9cdoc_id1\xe2\x80\x9d).collection(\xe2\x80\x9cfollowing\xe2\x80\x9d).doc(\xe2\x80\x9cdoc_id2\xe2\x80\x9d).set(new_document)\n的云,并且我已经将云函数编写为

\n\n
exports.create_friend_request_onCreate = functions.firestore\n  .document("users/{user_id}/{following}/{following_id}")\n  .onCreate(f2);\n
Run Code Online (Sandbox Code Playgroud)\n\n

f2并在其他文件中编写了实现

\n\n
exports.f2 = async function(snapshot) {\n //some code\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,在子集合中创建文档时,出现以下错误

\n\n

Error: Value for argument "documentPath" is not a valid resource path. Path must be a non-empty string.

\n\n

有人可以向我解释一下这里出了什么问题吗?

\n

node.js firebase google-cloud-functions google-cloud-firestore

8
推荐指数
2
解决办法
2万
查看次数

post 方法如何在 Ruby on Rails 中工作

我来自 Python 和 Java 背景,只有 CSS、HTML、Ruby 的基本知识,并尝试使用 Ruby on Rails 学习 Web 开发。我正在尝试按照Michael Hartl上的教程进行操作。我不明白代码post清单 7.23 中的方法在做什么参数。

require 'test_helper'

class UsersSignupTest < ActionDispatch::IntegrationTest

  test "invalid signup information" do
    get signup_path
    assert_no_difference 'User.count' do
      post users_path, params: { user: { name:  "",
                                         email: "user@invalid",
                                         password:              "foo",
                                         password_confirmation: "bar" } }
    end
    assert_template 'users/new'
  end
end
Run Code Online (Sandbox Code Playgroud)

从我在API 中的跟踪来看,它接受了两个都是字符串的非可选参数,但是在代码清单 7.23params:中,第二个参数中突然出现了哈希语法,这让我很困惑。任何人都可以启发我吗?

ruby post ruby-on-rails

3
推荐指数
1
解决办法
892
查看次数

Firebase 模拟器上的 Firebase 权限被拒绝错误

我参考本教程了解 Firestore 安全规则。我已经从存储库中提取了代码,它与视频的代码相匹配。我更改了setup代码以运行firestore.rules而不是firestore-test.rules,并尝试运行firebase emulators:startjest ./spec遵循相同的目录结构,我未能通过"should allow delete when user is admin"和的测试,并且失败"should not allow delete for normal user"的原因是通配符中的写入规则。有谁知道出了什么问题?

collections.spec.js

const { setup, teardown } = require("./helpers");


describe("General Safety Rules", () => {
  afterEach(async () => {
    await teardown();
  });

  test("should deny a read to the posts collection", async () => {
    const db = await setup();
    const postsRef = db.collection("posts");
    await expect(postsRef.get()).toDeny();
  });

  test("should deny …
Run Code Online (Sandbox Code Playgroud)

javascript firebase firebase-security jestjs google-cloud-firestore

3
推荐指数
1
解决办法
1672
查看次数

警告:指针和整数以及转义字符之间的比较

1)我在https://www.tutorialspoint.com/compile_c_online.php上测试了我的代码 它以某种方式通过显示1,3,27,23,19的理想输出工作,但也给我错误消息,这很奇怪,因为所有我的函数没有任何整数.任何人都可以告诉我为什么显示错误的行是错误的?

2)我怀疑它与'未正确处理的角色有关,但我不知道如何打印除%%和之外的所有特殊字符\\.有人可以指引我查看完整列表吗?

编辑:我意识到实际上有2个转义字符我错了(在https://www.geeksforgeeks.org/escape-sequences-c/上找到了正确的术语),这是单引号和双引号.除了这个清单之外还有什么吗?

#include <stdio.h>

int improvedCountWords(const char *str) {

    int size=0;
    int number=0;
    int length=0;
    while (str[size]!='\0'){
        if (str[size]==' ' || str[size]=='.' || str[size]=='\\' || str[size]=='*' || str[size]=='"'){
            if (length>0){
                number+=1;
                length=0;
            }

        }
        else if (str[size]=='-' || str[size]=="'"){
            if (length>0){
                length++;
            }

        }
        else{
            length++;
        }
        size++;
    }
    if (length>0){
        number++;
    }
    return number;
}


int main(){
    char s1[]="Panting heavily, he continues his exercises -- grepping, installing …
Run Code Online (Sandbox Code Playgroud)

c

0
推荐指数
1
解决办法
65
查看次数