我使用集群实现,我希望数据X形成我在算法中定义的集群数量(我相信这就是它的工作方式)。但这种行为令人困惑。
cm = FCM(n_clusters=6)
cm.fit(X)
此代码生成一个带有4个标签的图- 0,2,4,6
cm = FCM(n_clusters=4)
cm.fit(X)
此代码生成一个带有4个标签的图- 0,1,2,3
当我初始化簇号时,我期望标签0,1,2,3,4,5为6。
代码:
from fcmeans import FCM
from matplotlib import pyplot as plt
from seaborn import scatterplot as s
这是我的Fraction类代码
class Fraction:
"""Class for performing fraction arithmetic.
Each Fraction has two attributes: a numerator, n and a deconominator, d.
Both must be integer and the deonominator cannot be zero.
"""
def __init__(self,n,d):
""
程序将2个分数相加,并以简化的形式显示它们的和(n次)。谁能帮我优化我的解决方案(根据SPOJ的说法,已经超过了时间限制)
我的解决方案是:
#include <iostream>
using namespace std;
int main()
{
int n, a, b, c, d, gcd;
long long num, den;
cin >> n;
for(int i = 0; i < n; i++)
{
cin >> a >> b >> c >> d;
我试图建立一个计算器,它输入一个数字n,它可以自动输出1/2+2/2 +1/3+2/3+3/3 +.+1/n+2/n+.+n/n,对于每个分母,打印一次结果。当用户决定停止输入0时,计算器将在输出1/2+2/2 +1/3+2/3+3/3 +…+1/n+2/n+…+n/n .And的最终结果后重新启动并请求输入。
表示input=3,输出为sum =1,sum=2,但我预计它是sum=3/2,sum=7/2
这是程序
#include <stdio.h>
int main(){
printf("Please enter the max denominato
在这种情况下,我经常很难估计迭代次数,因此在最坏情况下的时间复杂度是接近极限的。以下是问题所在:
给你一个数字N,你一直把数字N和它的反面相加,直到你得到回文。给出了327。
327 + 723 = 1050
1050 + 0501 = 1551
You stop
你可以有以下假设:
解总是存在的
结果回文的最大值永远不会超过2^32 (4位int足够)。
这是我的代码:
unsigned long rev(unsigned long k) //log k
{
unsigned long res = 0;
while(k)
{
res
谁能给我解释一下是怎么做到的?下面是我想要理解的代码片段:
// Iterate though input array, for every element
// arr[i], increment arr[arr[i]%k] by k where k is less than of equal to number of elements
// ie. k <= n
for (int i = 0; i< n; i++)
arr[(arr[i]%k)] += k;
// Find index of the maximum repeat
我知道你可以用manacher算法在O(n)中找到最长的回文子串,但能不能找到O(n)或O(n log n)中回文子串的总数?如果是的话,你会怎么做呢?
把单个字母也算作回文。
例如,"xyxyx“的回文子串数为9。
这是因为你有:
5 single letter palindromes (x,y,x,y,x)
3 palindromes with three letters (xyx, yxy, xyx)
1 palindrome with five letters (xyxyx)
for a total of 5+3+1 = 9 palindromic substrings.
试图开发一种快速找到斐波那契数值的代码。但问题是,当输入为1000000阶时,我得到SIGSEGV错误。另外,从这里的其他问题中,我了解到这可能是因为堆栈内存在运行时超出限制。我猜这里就是这种情况。
#include<stdio.h>
unsigned long long int a[1000001] = {0};
unsigned long long int fib(int n)
{
unsigned long long int y;
if(n==1 || n==0)
return n;
if (a[n] != 0)
ret
我有一个2D数组,该数组由任意整数N动态创建。最初,我需要将数组中的所有值设置为一个值,该值表示在使用数字"-1“时它是”未初始化的“。但是,我希望将这个2D数组转换为一个一维数组,并将每个值赋值为等于它在新的一维数组中的索引。
public class Percolation {
private int[][] id;
private int[] array1D;
private int blocked = -1; //a number that doesn't exist in the array
// create N-by-N grid, with all si
我的代码中有一个计数器,当它到达无符号int max值时,我希望我的计数器返回到0。我用一个小代码进行了测试,它可以工作,但我不知道这是否是一种未定义的行为
#include <stdio.h>
#include <string.h>
main()
{
unsigned int a = 0;
a= ~a; // Max value of unsigned int
printf("%u \n", a );
a= a+1; //is it allowed to increment "a" when "a"
谁能解释一下如何降低从二维数组中找出最大数的代码的时间复杂度?
mat = [[17, 2, 33, 4],
[25, 66, 7, 8],
[9, 10, 78, 12],
[13, 14, 15, 16]]
import sys
max = -sys.maxsize - 1
N = 4
M = 4
for i in range(N):
for j in range(M):
if (mat[i][j] > max):
可能出现的扰流板警告
我花了很长时间来改进这个算法,找出错误的地方,但我似乎不知道为什么输出的答案是不正确的。
我正在试图求解,得到有超过500个除数的最小三角数,但是它说我的答案是不正确的。
下面是我的Python代码:
import time
# function to get the number of divisors
def div(n):
d=2
for i in range(2,int(n**.5)+2):
if (n % i) == 0:
d += 1
return d
start = time.time()
我正在实现一个BigInteger类。它可以在很短的时间内处理非常大的数字。
2 ^ 200000 == Time Elapsed : 12.343
Number of binary digits : 200001
唯一的问题是,当我做std::cout << foo;时,我必须等待很长时间。因为我的BigInteger类必须在单个位上执行std::string乘法和std::string增量。随着比特数的增加,它甚至可能需要很长时间才能完成。
Printing foo took 160.485 second(s) // It is so so long!!!
我已经尽我最大的能力