假设我有矩阵
import numpy as np
A = np.matrix([[1,2,3,33],[4,5,6,66],[7,8,9,99]])
Run Code Online (Sandbox Code Playgroud)
我试图理解函数argmax,据我所知它返回最大值
如果我在Python上尝试过:
np.argmax(A[1:,2])
Run Code Online (Sandbox Code Playgroud)
我应该获得第二行中的最大元素,直到行的末尾(第三行)和第三列?所以它应该是数组[6 9],而arg max应该返回9?但是为什么当我在Python上运行它时,它返回值1?
如果我想在第3列(即9)中从第2行开始返回最大元素,我该如何修改代码?
我已经检查了Python文档,但仍然有点不清楚.感谢您的帮助和解释.
我不确定这是否是提出这个问题的正确位置,但由于它涉及编程和代码,希望这是正确的地方.
我曾尝试在程序员和计算机科学SE上发帖,但他们将我重定向到了这个网站.
问题是如何编写计算Fibonacci数的寄存器机器代码/程序.代码的语法实际上非常简单.
(以下仅供参考,对于长篇文章感到遗憾)
(有关更多说明,请参阅正式逻辑书:Richard Carl Jeffrey的范围和限制)
根据维基百科,注册机是一种类似于图灵机的抽象机的通用类.(处理器)寄存器是可用作CPU或其他数字处理器的一部分的少量存储器.
我们可以通过将寄存器建模为空桶来简化问题,我们可以将大理石或岩石放入寄存器("桶").规则是从存储桶中添加或移除弹珠以执行计算.
规则如下:
1.登记机器使用有限数量的桶和无穷无尽的大理石供应.
2.每个桶都可以单独识别.大理石无需区分.
3.寄存器机器程序是一组有限的指令:
- 将大理石添加到桶中(然后继续下一条指令).
- 或者从桶中取出大理石(如果可以的话,继续下一个指令,如果不能,则继续下一个指令).
4.程序可以用流程图或指令列表编写.
以下是执行添加的注册机程序的示例.
让A,B,C成为桶.
1.(-B; 2,4)表示从桶B中取出一个大理石,如果可以,则转到指令2,如果不能,则转到4个
.(+ A; 3)表示将一个大理石添加到桶A中,然后转到指令3 3
.(+ C; 1)表示将一个大理石添加到桶C中,然后转到指令1
4.(-C; 5, - )表示从桶C中取出一个大理石,如果可以,则转到指令2,或退出如果不能
5.(+ B; 4)意味着将一个大理石添加到桶B,然后转到指令4
很容易证明,假设我们在桶A中有3个弹珠,在桶B中有2个弹珠,在桶C中有4个弹珠.执行此算法后,将有| A | + | B |.= 3 + 2 =桶A中的5个弹珠和| B | + | C | 在桶B中= 2 + 4 = 6个弹珠
(我希望上面的例子足够清楚,仅用于说明目的)
(现在问题来了)
现在,我想编写一个寄存器机器代码,当在存储桶A中输入n时,返回(也在存储桶A中)第n个斐波纳契数.Fibonacci数字是0(第0),1(第1),1 = 0 + 1(第2)等.我们可以使用任意数量的桶,目标是尽可能简单地编写代码(即最少的指示).给定F(0)= 0且F(1)= 1,斐波纳契递归关系为F(n)= F(n-1)+ F(n-2).
这是我的尝试和代码:
我的想法是使用桶A作为输入,最后作为输出F(n)(因为问题需要桶A中的输出),桶B作为"计数器",桶C作为F (n-1)和桶D为F(n-2).
1.(+ C; 2)
2.( - A; 3,4) …
我想编写一个python函数,它生成一个大小为n乘以n的零矩阵,对于主对角线上方的所有元素都有1.
这是我的代码:
def funtest(n):
for i in range(0,n-2):
s = (n,n)
Y = zeros(s)
Z = Y
Z[i,i+1]=1
return Z
Run Code Online (Sandbox Code Playgroud)
但结果只在矩阵的(n-1,n-2)元素中给出1.
我被卡住了,我真的认为我的代码是正确的,并且不知道错误在哪里.我该如何解决?有人可以帮忙吗?
谢谢.
我是 Python 的极端初学者,我很难编写非常简单的代码。
我正在尝试编写一个简单的代码,通过使用期望为 1.0 和标准差为 0.005 的函数 gauss 来生成 100 个正态分布数,然后存储在一个数组中,该数组可用于计算这 100 个样本的均值和标准差。
这是我的代码:
def uniformrandom(n):
i=0
while i< n:
gauss(1.0, 0.005)
i = i + 1
return i
Run Code Online (Sandbox Code Playgroud)
然后我试过了
L = uniformrandom(100)
Run Code Online (Sandbox Code Playgroud)
代码应该在 Python 中缩进,但只是当我在 StackOverflow 中输入时,我才真正知道如何缩进它。
假设我使用公式 (x1+x2+...+xn)/100 来获得平均值,我如何存储这些数字并使用公式来获得平均值。
我在 Python 中尝试了代码,但 L 只打印值 n。我的代码有什么问题,我应该如何修复它。
如果有人可以提供一些帮助,将不胜感激。非常感谢!