qyg123 发表于 2024-11-16 13:20:26

求早期Fortran聚类程序

想让电脑解码手工莫尔斯码,需要聚类分析,最好是Fortran的,速度快。在网上搜了一下,大多是Python程序,速度慢。AI提供了一个Fortran聚类程序,是现代版的Fortran程序,很多内部函数在我的Fortran95个人版上没有,无法运行。哪位大师有早期Fortran聚类程序吗?

诸葛赚赚 发表于 2024-11-19 18:23:04

定义莫尔斯码表:将每个字母和数字映射到相应的莫尔斯码。
读取输入的莫尔斯码序列:从用户或文件中读取莫尔斯码序列。
解码莫尔斯码:根据莫尔斯码表将莫尔斯码转换为文本。https://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif

chipset009 发表于 2024-11-16 13:41:35

升级一下编译器比较现实。早期就算能找到,各种BUG谁来改?

qyg123 发表于 2024-11-16 19:16:17

chipset009 发表于 2024-11-16 13:41
升级一下编译器比较现实。早期就算能找到,各种BUG谁来改?

谢谢回复。
找不到老的就用新的。

诸葛赚赚 发表于 2024-11-19 18:23:22

program morse_decoder
    implicit none
    character(len=1) :: input_char
    character(len=5) :: morse_code
    integer :: i, j
    character(len=26), parameter :: alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    character(len=10), dimension(26) :: morse_table = &
      ['.-', '-...', '-.-.', '-..', '.', '..-.', '--.', '....', '..', '.---', &
         '-.-', '.-..', '--', '-.', '---', '.--.', '--.-', '.-.', '...', '-', &
         '..-', '...-', '.--', '-..-', '-.--', '--..']

    print *, "Enter Morse code (spaces between letters, slashes between words):"
    do while (input_char /= '/')
      read(*, '(A)') input_char
      if (input_char == ' ') then
            print *, " "
      else
            call decode_morse(input_char)
      end if
    end do

contains

    subroutine decode_morse(input_char)
      character(len=1), intent(in) :: input_char
      integer :: i
      do i = 1, 26
            if (input_char == morse_table(i)) then
                print *, alphabet(i:i)
                exit
            end if
      end do
    end subroutine decode_morse

end program morse_decoderhttps://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif

诸葛赚赚 发表于 2024-11-19 18:24:11

program kmeans_clustering
    implicit none
    integer, parameter :: n = 100, k = 3, max_iter = 100
    real, dimension(n, 2) :: data
    real, dimension(k, 2) :: centroids
    integer, dimension(n) :: labels
    integer :: i, j, iter, closest_centroid
    real :: distance, min_distance

    ! Initialize data (for demonstration purposes, using random values)
    call random_seed()
    call random_number(data)

    ! Initialize centroids randomly from the data points
    do i = 1, k
      centroids(i, :) = data(i, :)
    end do

    ! K-means clustering algorithm
    do iter = 1, max_iter
      ! Assign each data point to the nearest centroid
      do i = 1, n
            min_distance = huge(distance)
            do j = 1, k
                distance = sqrt((data(i, 1) - centroids(j, 1))**2 + (data(i, 2) - centroids(j, 2))**2)
                if (distance < min_distance) then
                  min_distance = distance
                  closest_centroid = j
                end if
            end do
            labels(i) = closest_centroid
      end do

      ! Update centroids as the mean of assigned data points
      do j = 1, k
            centroids(j, :) =
      end do
      do i = 1, n
            centroids(labels(i), 1) = centroids(labels(i), 1) + data(i, 1)
            centroids(labels(i), 2) = centroids(labels(i), 2) + data(i, 2)
      end do
      do j = 1, k
            centroids(j, :) = centroids(j, :) / sum(labels == j)
      end do
    end do

    ! Print results
    print *, "Final centroids:"
    do i = 1, k
      print *, centroids(i, :)
    end do
    print *, "Labels:"
    do i = 1, n
      print *, labels(i)
    end do

end program kmeans_clusteringhttps://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif

诸葛赚赚 发表于 2024-11-19 18:25:52

楼主试一下这个,下面是卡曼聚类,我这边没有win98电脑https://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif

qyg123 发表于 2024-11-19 21:06:29

诸葛赚赚 发表于 2024-11-19 18:23
定义莫尔斯码表:将每个字母和数字映射到相应的莫尔斯码。
读取输入的莫尔斯码序列:从用户或文件中读取莫 ...

谢谢分享。

qyg123 发表于 2025-1-16 21:57:40

本帖最后由 qyg123 于 2025-1-16 23:10 编辑

分析了一个在10.117MHz收到的cw信号,整理后见下图:


聚类分析程序给出“滴”的分割点是71ms(含)一下。解码结果很难理解,不知道是解码错误还是加密了 。如果是解码错误(无法对应),程序会提示,但是程序没有提示,全部顺利解码。解码结果如下:
            2
            1
n
            1
            2
            2
w
            1
            1
            1
s
            1
            1
            2
u
            2
            1
n
            2
            1
n
            2
            1
            2
            2
y
            1
e
            1
            1
            1
s
            1
            1
            1
            2
            2
3
            2
            1
            2
            1
c


            1
            1
            1
            2
            2
3
            2
            1
            2
            1
c
            1
e
            1
            1
            1
s
            1
            2
            1
r
            1
            1
i
            2
            2
            1
g
            1
            2
            2
            2
            2
1
            2
            2
            2
o
            2
            2
            2
o
            1
            1
            1
s
            1
e
            1
            1
            1
s
            1
            2
a


            2
t
            1
            1
i
            1
            2
            1
            1
l

            2
            1
n
            2
            2
            1
g
            1
e
            1
            2
            1
r
            1
            1
            1
            1
            2
4
            1
e
            1
            2
a
            2
            2
m
            1
e
            1
            1
            1
s



koei 发表于 2025-1-17 08:07:16

FORTRAN程序设计语言是40多年前的事情了。C语言还记得,行吗

qyg123 发表于 2025-1-17 08:49:39

koei 发表于 2025-1-17 08:07
FORTRAN程序设计语言是40多年前的事情了。C语言还记得,行吗

FORTRAN语言对数学运算优化了,数学运算最快,浮点运算比C语言都快。
C语言在灵活上仅次于汇编,可以对位操作。
我现在搞大量、复杂的数学分析就用FORTRAN,少量、简单的数学分析用excel。对文件操作就用C语言。

sys3 发表于 2025-2-25 15:10:46

qyg123 发表于 2025-1-17 08:49
FORTRAN语言对数学运算优化了,数学运算最快,浮点运算比C语言都快。
C语言在灵活上仅次于汇编,可以对 ...

只玩C语言,学习了。

sbyywf 发表于 2025-2-25 17:22:02

不知要多早的早期FORTRAN程序

qyg123 发表于 2025-2-25 19:49:37

sys3 发表于 2025-2-25 15:10
只玩C语言,学习了。

C语言不错,在高级语言里最灵活,虽老但不落后。有些基本操作只有C语言能够执行。

qyg123 发表于 2025-2-25 19:53:19

sbyywf 发表于 2025-2-25 17:22
不知要多早的早期FORTRAN程序

现在很多程序都是与新版本配套的,所以,还是用新版本的编程语言吧。
页: [1] 2
查看完整版本: 求早期Fortran聚类程序