我用np.save()保存了几个numpy数组,并且放在一起它们非常庞大.
是否有可能将它们全部作为内存映射文件加载,然后连接并切换所有这些文件而不将任何内容加载到内存中?
我正在Qt开发一个GUI应用程序.
这是我的第一个GUI应用程序,我不是很有经验,仍然需要与C++和Qt框架的一些更高级的方面进行斗争.
该应用程序非常简单,具有主窗口和一些用户配置设置并按下按钮的对话框,程序执行(非常复杂)计算,在UI上的某处提供结果.
现在,我遇到了问题.我将所有计算数据(静态和从资源加载)和逻辑放到一个单独的类中.我创建了这个类和UI类的实例.现在,问题是如何从UI类访问数据/逻辑类的成员?假设有一个QStringList位于Logic类中,我想要一个特定的对话框来访问该列表并将其呈现给用户,而不在内存中复制它?
我知道这可能是一个非常基本的C++问题(Qt甚至不相关),但不是每个人都是编程向导.感谢任何提示或帮助!
好的,我会在这里尽可能详细.
想象一下,用户可以选择一组"选项".每当他选择时,他就会得到4种不同的选择.在这4个"插槽"中可以出现更多选项.每个人都有一定的明确和已知的出现概率.并非所有选项都可能出现,并且某些选项需要先前已选择其他选项 - 在复杂的相互依赖树中.(我已经定义了这个)
当用户选择4中的一个时,他会看到另外4个选项.选项池再次定义,可以取决于用户之前选择的内容.
在所有可能出现的"选项"中,有一些特殊的选项,称为KEY选项.
程序启动时,会向用户显示前4个选项.对于这4个中的每一个,程序需要计算用户在(可变)N选项的周期中"实现"所有KEY选项的总概率.
例如,如果总共有4个选项,则实现其中任何一个的概率恰好为1,因为它们都出现在开头.
如果有人能告诉我应该从哪个逻辑开始,我将非常感激.我正在考虑计算所有可能的选择序列,并计算导致在N'步骤中选择KEY选项的那些序列,但问题是所有这些都出现的概率不均匀,并且选项池也变为用户选择并积累他的选项.
我很难将明确定义的概率和选项的依赖性实现到一个能够给出合理的总概率的算法中.因此,用户每次都知道4中的哪一个使他处于最佳位置以最终获得KEY选项.
有任何想法吗?
编辑:这是一个例子:
说池中有7个选项.option1,...,option7 option7需要option6; option6需要option4和option5; option1到5不需要任何东西,可以立即出现,各自的概率为option1.p,...,option5.p; KEY选项是,例如,option7; 用户在1-5中选择了4个随机(但加权)的选项,程序需要说:"如果你选择(第一个),你有##%的机会在最多N次尝试中获得option7." 类似于其他3个选项.
当然,对于某些低N来说,不可能获得选项7,而对于某些大N则可以肯定.N可以选择,但是是固定的.
编辑:所以,这里的要点不是用户随机选择的.点是 - 程序建议选择哪个选项,以最大化最终的概率,在N步之后,将为用户提供所有关键选项.
对于上面的例子; 假设我们选择N = 4.所以程序需要告诉我们出现的前4个选项中的哪一个(选项1-5中的任何4个),当选择哪一个时,产生获得option7的最佳机会.因为对于option7你需要option6,为此你需要option4和option5,很明显你必须在第一组选择中选择option4或option5.当然,其中一个肯定会出现.假设我们得到第一个选项{option3,option5,option2,option4}.程序然后说:如果你选择了option3,你将永远不会分4步获得option7.p = 0; 如果你选择了option5,你可能会得到option7,p = ....; ... option2,p = 0; ... option4,p = ...;
无论我们选择什么,对于接下来的4个选项,重新计算p.显然,如果我们选择option3或option2,那么每个进一步的选择都有0次将我们带到option7的可能性.但对于option4和option5,p> 0;
现在更清楚了吗?我不知道如何获得这些概率.
package main
import (
"fmt"
"log"
)
func catch(err *error) {
if r := recover(); r != nil {
*err = fmt.Errorf("recovered panic: %v", r)
}
}
func panicIf42(n int) {
if n == 42 {
panic("42!")
}
}
func NormalReturns(n int) error {
var err error
defer catch(&err)
panicIf42(n)
return err
}
func NamedReturns(n int) (err error) {
defer catch(&err)
panicIf42(n)
return
}
func main() {
err := NamedReturns(42)
log.Printf("NamedReturns error: %v", err)
err = NormalReturns(42)
log.Printf("NormalReturns error: %v", …
Run Code Online (Sandbox Code Playgroud) 考虑一种情况,即表单列表中包含数据
data = {{x1, x2, x3, ..., xn, y}, {...}, ..., {...}}
Run Code Online (Sandbox Code Playgroud)
例如,
data = {{0, 2, 3, 2}, {0, 0, 1, 4}, {7, 6, 8, 3}}
Run Code Online (Sandbox Code Playgroud)
我想将数据拟合为多元多项式,例如,2.因此,3变量函数值是:
{2, 4, 3}
Run Code Online (Sandbox Code Playgroud)
各点
{{0, 2, 3}, {0, 0, 1}, {7, 6, 8}}
Run Code Online (Sandbox Code Playgroud)
我会说类似的东西
Fit[data, {1, x, y, z, x^2, y^2, z^2, x y , x z, y z}, {x, y, z}]
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但我可能没有3变量数据,可能有任意数量的变量,我不知道如何以编程方式生成所有线性,二次或甚至更高阶的项,以插入它们是Fit []的第二个参数.
对于4变量日期做二阶,它将是这样的:
{1, x1, x2, x3, x4, x1^2, x2^2, x3^2, x4^2, x1 x2, x1 x3, x1 x4, x2 x3, …
Run Code Online (Sandbox Code Playgroud) 首先,这是一个游戏项目.
我需要有一个名为Skill的对象,它包含它们的字符串名称,一些其他成员,以及一组名为"requirements"的其他Skill对象.(这将是给定技能要求的先决条件技能列表)
在什么样的STL容器中我应该放置一组所有Skill对象?向量?组?地图?
这个容器是否也被用作成员"要求"的类型?
技能必须是独一无二的.
至于我将对技能组合做什么 - 通过名称搜索,主要是结合技能组合,并将技能附加到组合中.