可以在matplotlib中绘制Go-Board吗?我不会向你展示我可怕的尝试(包括一些补丁),只要你不要求它们,我希望你能提出更好的想法.
或者甚至更好:有一个库,或者有人已经编程了吗?那样就好了!
(为什么有人需要在matplotlib中使用GO Board?有很多原因.我的AI无论如何都适用于python/C++以及性能的一些可视化,它们在matplotlib中绘制.现在可以导出/导入到. sgf,但这包括一个外部查看器,如果需要很多图表,它会很慢.)
我只是想在C++中计算一个好的sigmoid函数(并且效率很高).所以我必须这样做:
1/(1 + exp(-x))
问题是,当X变大(或甚至很小)时,结果1 + e变为0或1
例如,
1 + exp(-30) = 1
但这是不正确的......
我们如何轻松有效地添加非常小(或大)的数字?
我正在使用的数据类型:double
这是代码片段:
double Quaternion::sigmoidReal(double v){
return 1.0 / ( 1.0 + exp(-v) ) ;
}
Run Code Online (Sandbox Code Playgroud)
谢谢 !
我是摇摆和武装的新手.我在GUI中实现了Huffman Tree.但在我写的代码中,Ubuntu(JAVA 8)的输出很奇怪.有时它打印树(尽管偶然)有时候窗口仍然是空白的.paintComponent对于不同的运行,该函数被调用不同的时间.代码相同,没有用户输入,但对于不同的运行,结果是不同的.请运行代码至少5次,看看我说了什么.任何人都可以帮助我摆脱这个问题吗?
NB你可以直接跳到Huffman课堂上.
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Graphics;
import java.io.*;
import java.util.*;
import java.util.LinkedList;
import java.util.PriorityQueue;
import java.util.Queue;
class Node implements Comparable<Node> {
private char ch;
private int freq;
private Node left, right;
private int x,y ;
Node(char ch, int freq, Node l, Node r) {
this.ch = ch;
this.freq = freq;
left = l;
right = r;
}
public boolean isLeaf(){
return (left == null) && (right == null);
}
public int compareTo(Node …Run Code Online (Sandbox Code Playgroud) 以下是我编写的代码片段,目前正在努力解决我的打印问题.
在我的main方法中,我insertPoint使用有效输入调用该函数两次,例如:insertPoint(42); insertPoint(56);并获得以下输出:
A.1 42
B.3 2686700
Run Code Online (Sandbox Code Playgroud)
但是在B.3,我希望它也能返回值42,但事实并非如此.我假设2686700指的是内存中的某个地址.
#include <stdio.h>
#include <stdlib.h>
struct point {
int value;
struct point* next;
};
struct point *root;
int insertPoint(int value) {
// Graph is empty, set new root
if(root == 0){
struct point newRoot;
newRoot.value = value;
root = &newRoot;
(*root).value = value;
printf("A.1 %d \n", (*root).value); // "A.1 42"
return value;
}
printf("B.3 %d \n", (*root).value); // "B.3 2686700"
/* rest of code here; irrelevant since related variables …Run Code Online (Sandbox Code Playgroud) 如何在 C++14 及更高版本中的 Unicode/UCS 代码点和 UTF16 代理对之间来回转换?
编辑:删除了 UCS-2 代理的提及,因为没有这样的事情。谢谢@remy-lebeau!
问题从标题中可以清楚地看出来.这是代码:
TimeTask.hpp:
#pragma once
#include <locale>
#include <codecvt>
#include <chrono>
namespace TimeTask {
static std::wstring_convert<std::codecvt_utf8_utf16<wchar_t> > converter;
std::tm * to_date(
int day, int month, int year,
int hours = -1, int minutes = -1, int seconds = -1
) {
time_t rawTime = time(0);
std::tm * tInfo = localtime(&rawTime);
tInfo->tm_mday = day;
tInfo->tm_mon = month - 1;
tInfo->tm_year = year - 1900;
if(hours >= 0)
tInfo -> tm_hour = hours;
if(seconds >= 0)
tInfo -> tm_sec = seconds;
if(minutes >= …Run Code Online (Sandbox Code Playgroud) 前几天这段代码正在运行.我改变了一些东西并重新运行它,现在它没有按预期工作.显然我改变的行为改变了行为,但我已经回去并恢复了所有这些改变,但它仍然无效.忽略那一点信息(开始),为什么这段代码不会在JPanel中放置一个15x15的JLabel网格?
gameBoard.setLayout(new FlowLayout());
for (int i = 0; i < 15; i++)
{
for (int j = 0; j < 15; j++)
{
JLabel tile = new JLabel("");
tile.setHorizontalAlignment(SwingConstants.CENTER);
tile.setPreferredSize(new Dimension(27, 27));
tile.setBorder(new EtchedBorder());
tile.setEnabled(false);
gameBoard.add(tile);
}
}
Run Code Online (Sandbox Code Playgroud)
gameBoard是通过NetBeans的GUI Builder定义的JPanel.它具有优选的尺寸,最大尺寸(与优选相同).水平/垂直可调整大小的选项被禁用,但是当此代码运行时,每个按钮水平延伸一行而不会断开.
如果我理解正确,FlowLayout应该在元素到达其包含元素的末尾时将其包装起来.这发生在今天之前,我真的不知道为什么这种行为停止了?
我有以下代码:
float test = 1/(10^(15));
std::cout << "test: " << test << std::endl;
Run Code Online (Sandbox Code Playgroud)
但我得到"test:0"作为值.我想要"测试:0.000000000000001".
我该如何实现这一目标?
我对这个问题很困惑.这是代码:
char str[256];
memcpy(&str[0], "Q", 1);
memcpy(&str[1], "5", 1); // everything fine so far
int16_t lenQ = 22;
memcpy(&str[2], (char*)&lenQ, sizeof(int16_t));
str[2 + sizeof(int16_t)] = (char) NULL;
printf("%i\n", strlen(str)); // prints out 2??
Run Code Online (Sandbox Code Playgroud)
从逻辑上讲,长度str应该是4,但它只有两个.为了让事情更加混乱,这有效:
int16_t raw = 0;
memcpy(&raw, &str[2], 2);
printf("%i\n", raw) // prints out 22 as expected
Run Code Online (Sandbox Code Playgroud)
所以大小str不正确,但我仍然可以实际访问"越界"值.我错误地理解了吗?根据我的理解,str-array应该在内部看起来像这样:
'Q', '5', /* 22 in bytes, which is 2 in this case */
Run Code Online (Sandbox Code Playgroud)
我是否应该像这样得到阵列的长度,或者我做错了什么?
我正在尝试编写C++ 11冒名顶替者(最好由@jrok称为,因为这些类没有像包装器那样的字段),对于一堆C"类",类似于:
extern "C" {
struct cfoo;
cfoo * cfoo_new();
void cfoo_free(cfoo *);
int cfoo_bar(cfoo *, int);
} // extern "C" {
class Foo final {
Foo() = delete; // Prevents
Foo(Foo &&) = delete; // construction
Foo(const Foo &) = delete; // of this
Foo & operator=(Foo &&) = delete; // C++
Foo & operator=(const Foo &) = delete; // object
public: /* Methods: */
int bar(int v) noexcept { return cfoo_bar(cPtr(), v); }
cfoo * cPtr() noexcept { …Run Code Online (Sandbox Code Playgroud) I'mm越来越有很多的JSON响应null和undefined值。我需要用空字符串 ( )替换 allnull和undefinedvalues ""。以下是我收到的示例响应:
{
lecCicode: null
lecOrderNo: null
loccType: "Z"
nccrCode: null
nciCode: null
},
{
lecCicode: null
lecOrderNo: null
loccType: "Z"
nccrCode: null
nciCode: null
},
{
lecCicode: null
lecOrderNo: null
loccType: "Z"
nccrCode: null
nciCode: null
}
Run Code Online (Sandbox Code Playgroud) 所以我有这个程序在我的家用机器上编译很好,但是一旦我在大学服务器上编译它就会打破......:/这对我的屁股来说是一个巨大的痛苦.我不知道可能导致错误的位置或原因.我首先从大学的valgrind报告开始.
==13527== Memcheck, a memory error detector
==13527== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==13527== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==13527== Command: ./main stock.dat coins.dat
==13527==
==13527== Invalid write of size 8
==13527== at 0x402762: load_data (in /RMIThome/shr/5/s3234575/Assignments2/main)
==13527== by 0x4028BE: main (in /RMIThome/shr/5/s3234575/Assignments2/main)
==13527== Address 0x6172676f72502074 is not stack'd, malloc'd or (recently) free'd
==13527==
==13527==
==13527== Process terminating with default action of signal 11 (SIGSEGV)
==13527== General Protection Fault …Run Code Online (Sandbox Code Playgroud) 有人可以告诉我我的程序有什么问题吗?我的程序应该找到最大值,int i[]但是当我运行它时,它要求我输入11个数字,而是显示11个数字中最大的数字.
#include<stdio.h>
void main(void)
{
int i[] =
{
88, 67, 90, 12, 34, 65, 100, 78, 56, 77, 85, //bus 8
98, 34, 67, 98, 67, 45, 67, 23, 45, 67, 89, //bus15
88, 67, 90, 12, 34, 65, 100, 78, 56, 77, 85, //22
98, 34, 67, 98, 67, 45, 67, 23, 45, 67, 89, //23
};
int j;
int number,largest;
largest=0;
for(j=0;j<11;j++)
{
scanf_s("%d",&number);
if(number>largest)largest=number;
}
printf("Largest=%d\n",largest);
}
Run Code Online (Sandbox Code Playgroud)
如何调整程序以便找到最大的值int i[]?