在Rstudio中(使用R 3.1.1)运行时,
length(unique(sort(c(outer(2:100,2:100,"^")))))
# 9220
Run Code Online (Sandbox Code Playgroud)
在R 3.1.1中,当我运行时,
length(unique(sort(c(outer(2:100,2:100,"^")))))
# 9183
Run Code Online (Sandbox Code Playgroud)
(正确的输出是9183)
我无法弄清楚为什么......非常感谢帮助
请考虑以下代码
i = 3
j = i
i = 4 # j != i
Run Code Online (Sandbox Code Playgroud)
但是,我想要的是
i = 3
f <- function(x, j=i)
x * j
i = 4
f(4) # 16, but i want it to be 12
Run Code Online (Sandbox Code Playgroud)
如果您想知道我为什么要这样做,您可以考虑这个代码 - 应用程序是一个多减量模型.转换矩阵的对角线是该行中其他减量的总和.我想定义我需要的减量,而不是使用这些减量来计算其他函数.在这种情况下,我只需要uxt01和uxt10,从这些我想生成函数uxt00和uxt11.我想要一些可以扩展到更高维度的东西.
Qxt <- matrix(c(uxt00=function(t=0,x=0) 0,
uxt01=function(t=0,x=0) 0.05,
uxt10=function(t=0,x=0) 0.07
uxt11=function(t=0,x=0) 0), 2, 2, byrow=TRUE)
Qxt.diag <- function(Qxt) {
ndecrements <- length(Qxt[1,])
for(index in seq(1, N, N+1)) { # 1, 4
Qxt[[index]] <- function(t=0, x=0, i=index, N=ndecrements) {
row <- ceiling(index/ndecr) …Run Code Online (Sandbox Code Playgroud) 在提出这个问题之前,我会指出这里有类似的问题,但这个帖子并没有真正回答我的问题.
考虑以下维数组:
1D: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
2D: [[1,2,3,4,5,6,7,8], [9,10,11,12,13,14,15,16]]
3D: [[[1,2,3,4],[5,6,7,8]], [[9,10,11,12],[13,14,15,16]]]
4D: [[[[1,2],[3,4]], [[5,6],[7,8]], [[[9,10],[11,12]], [[13,14],[15,16]]]]
...
Run Code Online (Sandbox Code Playgroud)
假设我想创建数组.对于前两个,我可以在R中做这样的事情
oneD <- array(1:16, dim=16) # class(oneD) = array
twoD <- array(1:16, dim=8) # class(twoD) = matrix
Run Code Online (Sandbox Code Playgroud)
但是,twoD数组现在表示为
[[1,3,5,7,9,11,13,15], [2,4,6,8,10,12,14,16]]
Run Code Online (Sandbox Code Playgroud)
我知道有两种解决方法.
twoD <- aperm(array(1:16, dim=8))
twoD <- matrix(1:16, nrow=2, byrow=TRUE)
Run Code Online (Sandbox Code Playgroud)
但是,这些方法不适用于填充3D和4D阵列.我在下面填写它们,但我希望它们符合我上面的定义.
threeD <- array(1:16, dim=c(2,2,4)) # class(threeD) = array
fourD <- array(1:16, dim=c(2,2,2,2)) # class(fourD) = array
Run Code Online (Sandbox Code Playgroud)
编辑
bgoldst的回答让我意识到,实际上精子确实可以满足我的需要.
threeD <- aperm(array(1:16, dim=c(2,2,4))
# threeD[1,1,1] = 1
# …Run Code Online (Sandbox Code Playgroud) 我有一个简单的问题。
考虑下面的代码:
#include <iostream>
struct Node {
int data;
Node *left;
Node *right;
Node(int pData) : data(pData), left(nullptr), right(nullptr) {}
};
void delete_node(Node *node) {
delete node;
node = nullptr;
}
int main() {
Node *node1 = new Node(1);
Node *node2 = new Node(2);
delete_node(node1);
delete node2;
node2 = nullptr;
if (node1) std::cout << "node1: " << node1->data << std::endl;
if (node2) std::cout << "node2: " << node2->data << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
产生输出:
node1: -572662307
Run Code Online (Sandbox Code Playgroud)
自从我设置node1 = nullptr …
当我在 Qt 中拖动以调整窗口大小时,它会拉伸 QVBoxLayout 内的小部件。我想避免这种情况。
以下是演示应用程序的几张图片(为此 stackoverflow 帖子创建):
如何使用 Qt Layouts 或其他 Qt Widget 类来解决这个问题?这是我的演示应用程序的代码(大约 50 行):
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, \
QGroupBox, QGridLayout, QLabel, QScrollArea
from typing import List
class AccountWidget(QWidget):
def __init__(self, data: dict, parent=None):
super().__init__(parent)
self.group_box_layout = QGridLayout()
for i, (key, value) in enumerate(data.items()):
self.group_box_layout.addWidget(QLabel(key), i+1, 1)
self.group_box_layout.addWidget(QLabel(value), i+1, 2)
self.group_box = QGroupBox()
self.group_box.setLayout(self.group_box_layout)
self.main_layout = QVBoxLayout()
self.main_layout.addWidget(self.group_box)
self.setLayout(self.main_layout)
class AccountListWidget(QWidget):
def …Run Code Online (Sandbox Code Playgroud) R中提供以下功能:
gamma 计算伽马函数digamma 计算log gamma函数的导数pgamma 计算不完整的伽马函数我想知道什么函数可以计算log不完整伽马函数的导数.我注意到gsl包有一个函数gamma_inc但不知道如何计算这个函数的日志的导数.
如果不存在函数,是否有一种简单的方法可以近似这个导数R?
这就是我想要做的事情:
取一个双(介于-1和1之间)并将其投射到浮子上.但我想确保浮动总是小于双倍.
有没有直接的方法来做到这一点?
作为参考,这是我想出的东西.
float DoubleToSmallerFloat (double X) // ex. X = 0.79828470019999997
{
float Y = X; // 0.79828471 -> note this is greater than X
double Diff = X - Y;
return Y - Abs (Diff) * 10;
}
Run Code Online (Sandbox Code Playgroud)