1、个面的骰子 标上1 2 3 4 5 6 投掷8次 求出现和的概率最大的数 ,就是这8次的和最有可能是多少
应该是28。
(1+2+3+4+5+6)/6=3.5
3.5 * 8 =28
另一种方法是:投两次,这两次的和出现次数最多的7,7*4=28
2、全排列 如1 2 3 有 3!词排列方式 输入是:1~50的整数,参数是[a,b),如[33,36)就是 33 34 35
#include<iostream>
using namespace std;
void arrange(int arr[], int k, int beginPos)
{
if(beginPos == k)
{
for(int i = 0; i < k; i++)
{
cout << arr[i] << " ";
}
cout << endl;
}
for(int i = beginPos; i < k; i++)
{
swap(arr[beginPos], arr[i]);
arrange(arr, k, beginPos + 1);
swap(arr[beginPos], arr[i]);
}
}
void printZuhe(int a, int b)
{
int num = b - a;
int array[num];
for(int i = a; i < b; i++)
{
array[i - a] = i;
}
arrange(array, num, 0);
}
int main()
{
printZuhe(33, 36);
system("pause");
return 0;
}
题目描述:平面上给你n个点,让你求一个点,到这n点的距离和最小。
解题报告:
代码如下:
#include<iostream>
#include<cstring>
#include<vector>
#include<algorithm>
#include<cmath>
#include<cstdio>
using namespace std;
#define NUM 20 //随机生成点的个数
#define TIM 20 //每个点移动的次数
#define RD 1000 //随即乘生成0~1的,精度为1/RD的小数
#define MIN 0.1 //步长T的最小值,比最后坐标要求的精度小一些
#define deta 0.7 //每次循环步长T的缩小程度
int n; //总点数,复杂度X * NUM * TIM * n; X为T到MIN的循环次数,由deta决定
struct pint
{
}jeo[200], tar[NUM];
double dist(pint a, pint b)
{return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));}
//判定函数
double judge(pint id)
{
}
//获取0~1的小数
double GetDouble()
{return (rand() % (RD + 1)) * 1.0 / RD;}
//获取左下角为a,右上角为b内的随机点
pint GetRand(pint a, pint b)
{
}
//模拟退火主过程 //MAXT为步长
void jeogia(double MaxT)
{
}
int main()
{
}
度为k的树,度为1的节点个数为n1,度为2的节点个数为n2...度为k的节点个数为nk,求叶子结点的个数
n1+2n2+...+knk -(n1+n2 + ... + nk) +1
= n2+2n3+...+(k-1)nk + 1