#53783: 可以用python的numpy解嗎?


yilin (yilin)

學校 : 不指定學校
編號 : 324543
來源 : [1.169.248.4]
最後登入時間 :
2025-10-11 19:41:04

如題,但這邊好像無法用numpy測試

我的程式碼如下,想問有沒有大神能幫看這樣是否能成功:

import numpy as np

while True:
    try:
        row, col=map(int, input().split())
        data1=np.zeros([0,col])
        for i in range(row):
            rowi=np.array(list(map(int, input().split())))
            data1=np.vstack((data1,rowi))
        new=data1.T


        # 印出matrix
        for i in new:
            print(" ".join(str(int(j)) for j in i))
    except:
        break
#53786: Re: 可以用python的numpy解嗎?


leeguanhan0909@gmail.com (李冠翰)

學校 : 高雄市苓雅區復華高級中學國中部
編號 : 276558
來源 : [36.238.189.188]
最後登入時間 :
2025-06-11 22:19:49

如題,但這邊好像無法用numpy測試

我的程式碼如下,想問有沒有大神能幫看這樣是否能成功:

import numpy as np

while True:
    try:
        row, col=map(int, input().split())
        data1=np.zeros([0,col])
        for i in range(row):
            rowi=np.array(list(map(int, input().split())))
            data1=np.vstack((data1,rowi))
        new=data1.T


        # 印出matrix
        for i in new:
            print(" ".join(str(int(j)) for j in i))
    except:
        break

不能,numpy只支援3.9以後,zerojudge 的版本是3.8.10

#53787: Re: 可以用python的numpy解嗎?


sam851015@gmail.com (多挖鼻孔有益身心健康)

學校 : 臺中市立惠文高級中學
編號 : 277705
來源 : [123.192.228.253]
最後登入時間 :
2025-09-21 22:24:46

如題,但這邊好像無法用numpy測試

我的程式碼如下,想問有沒有大神能幫看這樣是否能成功:

import numpy as np

while True:
    try:
        row, col=map(int, input().split())
        data1=np.zeros([0,col])
        for i in range(row):
            rowi=np.array(list(map(int, input().split())))
            data1=np.vstack((data1,rowi))
        new=data1.T


        # 印出matrix
        for i in new:
            print(" ".join(str(int(j)) for j in i))
    except:
        break

不能,numpy只支援3.9以後,zerojudge 的版本是3.8.10


現在才注意到不知不覺升級到 3.8 了

3.8 也可以用 numpy 喔,但不能用最新版的,要 1.24.4

zerojudge 不能用主要還是因為這邊只開放使用標準庫的東西,不然一大堆數學題目都可以直接用 scipy 兩三行搞定

 

我剛剛用 random 跑了樓主的程式碼,應該是沒問題的

 

#53788: Re: 可以用python的numpy解嗎?


sam851015@gmail.com (多挖鼻孔有益身心健康)

學校 : 臺中市立惠文高級中學
編號 : 277705
來源 : [123.192.228.253]
最後登入時間 :
2025-09-21 22:24:46

我測試用的程式碼,如果你需要的話.......

可以用這個測試(onlineGDB)

 

 
import numpy as np

def main():
  """ 你寫的東西 """
  while True:
      try:
          row, col = map(int, input().split())
          data1 = np.zeros([0, col])
          for i in range(row):
              rowi = np.array(list(map(int, input().split())))
              data1 = np.vstack((data1, rowi))
          new = data1.T
          # 印出matrix
          for i in new:
              print(" ".join(str(int(j)) for j in i))
      except:
            break

if __name__ == "__main__":
  import unittest
  import random
  from unittest.mock import patch
  from io import StringIO
  class TestProblem(unittest.TestCase):
      def grouper(self, arr: list[int], col: int) -> list[list[int]]:
          """ 把一維陣列分割成二維的,每一列都包含指定數量的元素 """
          iterators = [iter(arr)] * col
            return list(map(list, zip(*iterators)))

      def gen_test_cases(self, row: int, col: int) -> tuple[str, str]:
          """ 測資用這個函式隨機生成 """
          chosen = random.sample(range(row * col), row * col)
          ipt = self.grouper(chosen, col)
          expected = list(map(list, zip(*ipt)))
          ipt.insert(0, [row, col])
          def to_str(arr: list[list[int]]) -> str:
              return "\n".join(" ".join(map(str, line)) for line in arr)
            return to_str(ipt), to_str(expected)

      # unittest 主循環
      @patch('builtins.input')
      @patch('sys.stdout', new_callable=StringIO)
      def test_random_cases(self, mock_stdout, mock_input):
          for _ in range(5):  # 測試 5 個隨機案例,隨便改你喜歡的
              row = random.randint(2, 10)
              col = random.randint(2, 10)
           
              with self.subTest(row=row, col=col):
                  input_str, expected = self.gen_test_cases(row, col)
                  mock_input.side_effect = input_str.split('\n')
                  mock_stdout.truncate(0)
                  mock_stdout.seek(0)
                 
                  main()
                 
                  actual = mock_stdout.getvalue().strip()
                    self.assertEqual(actual, expected)

  unittest.main()