iT邦幫忙

1

python 的int main()無法執行

  • 分享至 

  • xImage

大家好我是個剛學python的小白,下面的程式碼一直說main的語法錯誤,但我找網路還是看不懂要怎麼解決,希望各位大佬幫幫忙,非常感謝!
int main() {
int N=10000;
int M=0;
for (int i=1; i<=N; i++) {
double px=rand()/(double)RAND_MAX;
double py=rand()/(double)RAND_MAX;
if (pxpx+pypy<=1.0) M += 1;
}
print("%.12lf\n", 4.0*M/N);
return0;
}

ccutmis iT邦高手 2 級 ‧ 2023-02-22 16:40:12 檢舉
這是 c語言吧?! @_@ 我書唸的少不要騙我
nien23832 iT邦新手 5 級 ‧ 2023-02-22 16:41:40 檢舉
怎麼看都不像python吧...
alien663 iT邦研究生 5 級 ‧ 2023-02-22 17:17:58 檢舉
去看一下別人正常的程式碼怎樣寫,你就會知道了
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2
JamesDoge
iT邦高手 1 級 ‧ 2023-02-22 20:13:06

Python 程式碼:

import random

N = 10000 # 總共的點數
M = 0  # 落在圓內的點數

# 隨機產生座標
for i in range(1, N + 1):
    px = random.random() # 在 x 軸上的座標
    py = random.random() # 在 y 軸上的座標

    # 判斷是否在圓內,是的話則 M+1
    if px * px + py * py <= 1.0:
        M += 1

# 計算圓周率,並印出
print("%.12lf" % (4.0 * M / N))

4
jeffeux
iT邦新手 4 級 ‧ 2023-02-22 22:42:24

感覺是要做 Monte Carlo 求 π 的近似值⋯⋯

這是(有點錯誤的) C/C++ 喔!要執行的話要存成 program.cprogram.cpp
然後使用
(C 語言)
gcc -o program program.c
(C++)
g++ -o program program.cpp
進行編譯

最後再用
./program
應該就可以執行了

C 語言:

#include <stdio.h>
#include <stdlib.h>

int main() {
    int N = 10000;
    int M = 0;
    for (int i = 1; i <= N; i++) {
        double px = rand() / (double) RAND_MAX;
        double py = rand() / (double) RAND_MAX;
        if (px * px + py * py <= 1.0) 
            M += 1;
    }
    printf("%.12lf\n", 4.0 * M / N);

    return 0;
}

C++:

#include <iostream>
#include <cstdlib>

int main() {
    int N = 10000;
    int M = 0;
    for (int i = 1; i <= N; i++) {
        double px = rand() / (double) RAND_MAX;
        double py = rand() / (double) RAND_MAX;
        if (px * px + py * py <= 1.0) 
            M += 1;
    }
    printf("%.12lf\n", 4.0 * M / N);

    return 0;
}

對應翻譯成 Python 會是

import random  # 這邊就跟 C/C++ 要 include 類似

def main() -> int:
    N: int = 10000
    M: int = 0
    for i in range(1, N + 1):
        # 產生 [0, 1) 的亂數
        px: float = random.random()
        py: float = random.random()
        if px * px + py * py <= 1.0:
            M += 1

    # 注意語法有點不太一樣喔
    print("%.12lf" % (4.0 * M / N))

    # 然後 Python 不需要 return 0,
    # 但如果包成 main() 要也可以
    return 0
    
if __name__ == "__main__": 
    main()

存成 program.py 然後打 python program.py 就行了

sam0407 iT邦大師 1 級 ‧ 2023-02-24 09:22:24 檢舉

誨人不倦,您真適合去當老師~~

我要發表回答

立即登入回答