c语言这道题怎么做 C语言这道题怎么做

c\u8bed\u8a00\uff0c\u8fd9\u9053\u9898\u600e\u4e48\u505a

\u5728\u6570\u5b66\u4e2d\uff0c\u4e24\u4e2a\u96c6\u5408X\u548cY\u7684\u7b1b\u5361\u513f\u79ef\uff08Cartesian product\uff09\uff0c\u53c8\u79f0\u76f4\u79ef\uff0c\u8868\u793a\u4e3aX \u00d7 Y\uff0c\u7b2c\u4e00\u4e2a\u5bf9\u8c61\u662fX\u7684\u6210\u5458\u800c\u7b2c\u4e8c\u4e2a\u5bf9\u8c61\u662fY\u7684\u6240\u6709\u53ef\u80fd\u6709\u5e8f\u5bf9\u7684\u5176\u4e2d\u4e00\u4e2a\u6210\u5458\u3002\u5047\u8bbe\u96c6\u5408A={a, b}\uff0c\u96c6\u5408B={0, 1, 2}\uff0c\u5219\u4e24\u4e2a\u96c6\u5408\u7684\u7b1b\u5361\u5c14\u79ef\u4e3a{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}\u3002\u7c7b\u4f3c\u7684\u4f8b\u5b50\u6709\uff0c\u5982\u679cA\u8868\u793a\u67d0\u5b66\u6821\u5b66\u751f\u7684\u96c6\u5408\uff0cB\u8868\u793a\u8be5\u5b66\u6821\u6240\u6709\u8bfe\u7a0b\u7684\u96c6\u5408\uff0c\u5219A\u4e0eB\u7684\u7b1b\u5361\u5c14\u79ef\u8868\u793a\u6240\u6709\u53ef\u80fd\u7684\u9009\u8bfe\u60c5\u51b5\u3002A\u8868\u793a\u6240\u6709\u58f0\u6bcd\u7684\u96c6\u5408\uff0cB\u8868\u793a\u6240\u6709\u97f5\u6bcd\u7684\u96c6\u5408\uff0c\u90a3\u4e48A\u548cB\u7684\u7b1b\u5361\u5c14\u79ef\u5c31\u4e3a\u6240\u6709\u53ef\u80fd\u7684\u6c49\u5b57\u5168\u62fc\u3002

\u7528\u6570\u7ec4\u4fdd\u5b58\u4e00\u4e0b\u7136\u540e\u6c42\u548c\u5c31\u5b8c\u4e86\u4e48\uff0c\u4e3a\u96be\u5565
#define MAX_NUM 100
int num[MAX_NUM] = {0};
int i = 0;
do
{
scanf("%d", &num[i++]);
} while (getchar() != '\n');
int* array = new int[num[0]];
memcpy(array, num + 1, sizeof(int)*num[0]);
int sum = 0;
for (int j = 0; j < num[0]; ++j)
{
sum += array[j];
}
printf("sum = %d", sum);
{
sum += array[j];

}
printf("sum = %d", sum);

#include <stdio.h>

#include <math.h>

#include <stdlib.h>

#include <string.h>

double problem1(int n)

{

    double p = 1.0;

    int i;

    for(i = 365;i > 365 - n;i--){

        p *= (double)i / 365;

    }

    return 1.0 - p;

}

int problem2()

{

    double min = 1.0;

    double tmp;

    int n;

    int i;

    for(i = 2;i <= 365;i++){

        tmp = fabs(problem1(i) - 0.5);

        if(min > tmp){

            min = tmp;

            n = i;

        }

    }

    return n;

}

int issame(int day[],int n)

{

    int year[365];

    memset(year,0,sizeof(year));

    int i;

    for(i = 0;i < n;i++){

        if(!year[day[i]-1]){

            year[day[i]-1] = 1;

        }

        else{

            return 1;

        }

    }

    return 0;

}

double problem3(int n,int count)

{

    int day[n];

    int i,j;

    double num = 0.0;

    for(j = 0;j < count;j++){

        for(i = 0;i < n;i++){

            day[i] = rand() % 365 + 1;

        }

        if(issame(day,n)){

            num++;

        }

    }

    return num / count;

}

int main()

{

    printf("result of problem1:%lf
",problem1(30));

    printf("result of problem2:%d
",problem2());

    printf("result of problem3:%lf
",problem3(30,10000));

    return 0;

}



理论结果:
#include <stdio.h>
int main()
{
int i;
double p = 1;
for(i=0;i<30&&i<=365;i++)
{
p = p * (365-i)/365;
}
printf("30名学生的班级里,两个学生的生日是同一天的概率是%lf\n",1-p);
}

模拟10000次的结果:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define num 10000

int main(int argc, char* argv[])
{
int i,j,t,stat;
int n;
int* p;
int repeat;
if(argc>1) sscanf(argv[1],"%d",&n);
else n=30;
srand(time(0));
if(n>=365)
{
printf("%d人的测试中,存在2人同一天生日的概率是1\n",n);
}
else
{
p = (int*)malloc(sizeof(int)*n);
t = num;
stat = 0;
while(t--)
{
repeat = 0;
for(i=0;i<n;i++)
p[i] = rand() % 365;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(p[i]==p[j])
repeat = 1;
stat += repeat;
}
printf("%d人的测试中,存在2人同一天生日的概率是%lf\n",n,1.0*stat/num);
}
}

能等到下周一吗5555555~很想做这道题但今天得收工了
如果到时候还没人的话就归我了哈哈

  • c璇█ 杩欓鎬庝箞鍋 鏈変細鐨勫悧?
    绛旓細鍏堣绠梐='1'锛屽嵆鏄!(a=49)锛--b鐨勭粨鏋滄槸b=4锛屾墍浠ワ紝鍚庨潰鐨刟/b+2.5灏辩瓑浜49/4+2.5=12+2.5=14.5 娌℃湁涓涓瓟妗堟槸姝g‘鐨勩
  • c璇█杩欓亾棰樻庝箞鍋
    绛旓細鎴戝啓杩欎釜锛屼慨鏀瑰父閲忓彲浠ュ疄鐜颁换鎰忛暱搴︽暟缁勯棿浠绘剰闀垮害闄嶅簭鎺掑垪銆俰nclude <stdio.h>#define maxlen 10//鏁扮粍鎬婚暱搴#define midlen 8//涓棿闇瑕佹帓搴忕殑闀垮害锛屼慨鏀规椂纭繚midlen灏忎簬绛変簬maxlen 骞朵笖 maxlen-midlen涓哄伓鏁版垨0int main(){ int a[maxlen]={3,6,1,7,8,4,9,5,10,2},i,*pb=&a[(...
  • C璇█鐨勯棶棰,杩欓亾棰樻庝箞鍋鍟?
    绛旓細杩欎釜棰锛屽氨鏄夋嫨绛旀D銆傚浘涓紝if(n/2)鍏跺疄灏辨槸绛変环浜巌f(n/2!=0)锛岃冭檻鍒皀鏄鏁帮紝瀹冧篃灏辩瓑浠蜂簬if(n>1)鎬讳箣锛岀涓娆¤皟鐢紝灏辨弧瓒虫潯浠讹紝杩涜閫掑綊璋冪敤锛歠un(5)鈥︹︹﹀叿浣撹鍥炬墍绀猴紙涓涓孩妗嗭紝灏辨槸涓娆″嚱鏁拌皟鐢級锛氫緷杈撳嚭鐨勫厛鍚庢搴忥紝鎬荤殑杈撳嚭灏辨槸锛1010 ...
  • C璇█鍒濆鑰呰闂杩欓亾棰樻庝箞鍋?
    绛旓細閬嶅巻瀛楃涓睸锛屼娇鐢ㄦ暟缁勭粺璁″叾涓26涓瓧姣嶅垎鍒嚭鐜扮殑娆℃暟 鏈缁堟渶灏戠殑瀛楁瘝鍑虹幇娆℃暟鍗充负鍙互鍙敜鐨勭榫欐暟 鍐嶄箻浠灏辨槸鍙互瀹炵幇鐨勬効鏈涙暟 C璇█鍙傝冧唬鐮佸涓嬶細include <stdio.h> int main(){ long long int n; // 娉ㄦ剰n鐨勫彇鍊艰寖鍥磋秴杩囦簡2^31-1锛屽簲鍙栭暱鏁村瀷 scanf("%lld", &n);char S[1000000];s...
  • 杩欓亾C璇█鐨棰樻庝箞鍋?
    绛旓細鎮ㄥソ锛屽緢楂樺叴鍥炵瓟鎮ㄧ殑闂銆傚浜杩欎釜棰樼洰鑰岃█锛屼富瑕佹槸鑰冩煡if锝瀍lse鍑芥暟鐨勫尮閰嶄娇鐢ㄦ儏鍐点傝繖涓煡璇嗙偣灏变竴瀹氳璁颁綇锛歩f鎬绘槸涓庡湪瀹冨墠闈㈢殑銆佺瀹冩渶杩戠殑銆佹病鏈変笌鍒殑if鍖归厤鐨別lse鍖归厤銆傛湁澶氬眰if璇彞鐨勶紝涓瀹氳浠庢渶閲屽眰鐨刬f涓巈lse寮濮嬪尮閰嶃傛墍浠ユ暣涓尮閰嶅舰寮忓鍥炬墍绀猴細閭d箞鎴戜滑鍒嗘瀽鐨勬椂鍊欙紝浠庢渶澶栧眰鐨刬f寮濮嬶紝if...
  • C璇█鐨勯棶棰,杩欓亾棰樻庝箞鍋?
    绛旓細涓嶅仛浠讳綍鎿嶄綔 //寰幆鑷砶=8鏃剁粨鏉熷惊鐜 if(k%2==0)//姝ゆ椂k=8锛宨f鏉′欢鎴愮珛锛屾墽琛宨f澶ф嫭鍙穥}鍐呰鍙ワ紝姝ゅ娌℃湁澶ф嫭鍙凤紝鏁呮墽琛宨f璇彞鍚庨潰绱ф帴鐫鐨勪竴鍙ヤ唬鐮 printf("%d",k);//杈撳嚭k=8锛屾晠閫塁 return 0;//绋嬪簭缁撴潫}鏈変笉鎳傜殑鍙互鍐嶉棶锛屾ゼ涓昏嫢瑙夊緱鍥炵瓟鏈夋墍甯姪锛屾湜閲囩撼锛岃阿璋紒
  • 璇烽棶涓涓杩欓亾C璇█缂栫▼棰樻庝箞鍋?
    绛旓細鎸夌収棰樼洰瑕佹眰缂栧啓鐨勭敤鍑拻瀵嗙爜鍔犲瘑鐨C璇█绋嬪簭濡備笅 include<stdio.h> int main(){ char s[80];int offset,i;fgets(s,80,stdin);scanf("%d",&offset);for(i=0;s[i]!='\0';i++){ if('A'<=s[i] && s[i]<='Z')if(offset>=0)s[i]='A'+(s[i]-'A'+offset)%26;else s...
  • 杩欑浜岄c璇█鎬庝箞鍋鍟?
    绛旓細杩欐槸涓涓熀纭鐨勫惊鐜粌涔犻銆傚彧瑕佽寰幆鎺у埗鍙橀噺i鐨勫垵鍊间负1锛屽惊鐜腑i姣忔+2锛岀劧鍚庡垽鏂鏋渋梅4鐨勪綑鏁扮瓑浜3锛岄偅涔堣繖涓椤瑰氨鏄礋鐨勶紝濡傛灉鐖眎梅4鐨勪綑鏁扮瓑浜1锛岄偅涔堣繖涓椤瑰氨鏄鐨勩傚綋i鐨勫艰秴杩1,000,000鐨勬椂鍊欏惊鐜氨鍙互缁撴潫浜嗐傛渶鍚庢墍寰楃殑鎬诲拰涔樹笂4锛屽氨鏄渾鍛ㄧ巼娲剧殑鍊间簡銆備笅闈㈡槸绋嬪簭鐨勪唬鐮佸拰杩愯...
  • 杩欓亾c璇█棰樻庝箞鍋
    绛旓細c = a++ - 1; //姝ゆ椂a浣跨敤鐨勬槸1锛宑=0锛屼笅,鏉¤鍙ョ殑鏃跺檃=2.printf("%d, %d,", a, c);//a=2锛宑=0 c += -a++ + (++b || ++c);//姝ゆ椂a浣跨敤鐨勬槸2锛屼笅鏉¤鍙ュ悗a=3锛屽洜涓烘湁a++璇彞 灏忔嫭鍙烽噷闈++b=2澶т簬0锛屽洜姝ゅ皬鎷彿閲岄潰鐨勫兼槸1锛屽洜涓++b鏄湡锛屽悗闈㈢殑++c灏变笉浼氭墽琛 ...
  • 闂竴涓C璇█杩欓亾棰樻庝箞鍋?
    绛旓細int gcd(int a,int b) {//姹傛渶澶у叕绾︽暟 / 鏈灏忓叕鍊嶆暟=(a,b鐨勪箻绉)/鏈澶у叕绾︽暟 / if(a%b==0)return b;else return gcd(b,a%b);} int main() { int a=5,b=13,c=6,d=3;int sum=0;int ans=0;int x1,x2;scanf("%d/%d %d/%d",&a,&b,&c,&d);sum=(b*d)/gcd...
  • 扩展阅读:c++语言入门自学 ... 学习c++的视频 ... 扫一扫题目出答案 ... c十十编程要学多久 ... c十十编程教学视频 ... c语言基础知识100题 ... c++编程适合几岁学 ... c++编程可以自学吗 ... 如何自己编程做游戏 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网