Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93

Алгоритмы и языки и МЫ

07.03.2023, 01:00. Показов 5953. Ответов 38

Студворк — интернет-сервис помощи студентам
Алгоритмы и языки и МЫ

В данной теме размещаем простые алгоритмы на 8 языках
например:

c++ _ C# _ python _ javascript _ qb64 _ VB _ java _ php

или хотя бы минимум на 3-х языках одновременно
и сразу желательно проверяемые в онлайн компиляторе Rextester.com

Плюс важно сообщать какие алгоритмы показывает пример
например:
изучаются циклы случайные сортировка печать сравнение вывод в файл

Отличие от Rosettacode.org: здесь алгоритмы очень краткие

Добавлено через 4 минуты
Программа Функция функций включает:
корень степень экспонента логарифмы
тригонометрия и радианы из градусов
на 3-х языках python c# c++

Контрольный пример при x=90 y=1322 примерно


Python
https://rextester.com/EGXCM83414

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import math # funp.py
def funp(x): # rextester.com/EGXCM83414
    rad = x * math.pi / 180
    a = x ** (1 / 4)
    b = x**(1/2) #; print (b)
    c = math.cos(rad); print(c)
    d = math.log10(x) #; print (d)
    e = math.exp(b)
    f = math.log(x,math.exp(1))    
    return a + b + c + d + e + f
 
x = 90
y = funp(x) 
print(x, y)


C++
https://rextester.com/EKC21250

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream> // func.cpp
#include <cmath> // rextester.com/EKC21250
using namespace std; 
 
double func(double x)
{ double rad,a,b,c,d,e,f,func;
    rad = x * M_PI / 180;
    a = pow(x, 1/4);
    b = sqrt(x);  // cout << b << endl;
    c = cos(rad);    cout << c << endl;
    d = log10(x); // cout << d << endl;
    e = exp(b);
    f = log10(b) * log(e);
    func = a + b + c + d + e + f;
    return func;
}
 
int main()    
{ double x = 90.; 
    cout << x << "     " << func(x) << endl;
    system("pause");
}


C#
https://rextester.com/PYG11940

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System; // funx.cs
namespace funx1 { class funx2 
{ static void Main(string[] args)
{ double x = 90; // rextester.com/PYG11940
    Console.WriteLine("{0}  {1}", x, funx(x));
    Console.ReadKey();
}
 
public static double funx(double x)
  { double rad,a,b,c,d,e,f,funx;
    rad = x * Math.PI / 180;
    a = Math.Pow (x,1/4);
    b = Math.Sqrt(x);  // Console.WriteLine(b);
    c = Math.Cos(rad);    Console.WriteLine(c);
    d = Math.Log10(x); // Console.WriteLine(d);
    e = Math.Exp(b);
    f = Math.Log10(b) * Math.Log(e);
 
    return funx = a + b + c + d + e + f;
  }
}}
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.03.2023, 01:00
Ответы с готовыми решениями:

Какие языки знают все школьники и языки, которые знает хотя бы один из школьников
Каждый из N школьников некоторой школы знает Mᵢ языков. Создайте приложение, которое будет определять, какие языки знают все школьники и...

Определите, какие языки знают все школьники и языки, которые знает хотя бы один из школьников
Здравствуйте. Помогите пожалуйста решить задачу: Каждый из N школьников некоторой школы знает Mi языков. Определите, какие языки знают...

Интерпретируемые языки VS Компилируемые языки
Я лично не смог вспомнить чем хоть один из них, лучше другого :) Хотя возможно скоростью

38
WH
1589 / 817 / 192
Регистрация: 10.09.2013
Сообщений: 3,293
Записей в блоге: 3
07.05.2023, 11:48
Студворк — интернет-сервис помощи студентам
Простая дихотомия?

Fortran
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
program test
implicit none
integer :: a, b, c, x, i=0
real    :: f
 
 call random_number(f); x = int(f * 1.0e+9)
 a = 0; b = 1000000000; c = (a + b) / 2
 
    do while (c /= x)
        if (c > x) then         
            b = c; c = (a + b) / 2
        else 
            a = c; c = (a + b) / 2
        end if  
    i = i + 1
    end do
 
print*, i, c, x
end program test
0
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
09.05.2023, 12:12  [ТС]
Milliard Fortran https://jdoodle.com/a/6cWF
онлайн компилятор для записи: вход через гугл
там повторена строка выводящая промежуточные результаты

Программа Python Миллиард https://jdoodle.com/a/6bRC
угадывающая 1 из 1'000'OOO'ooo https://rextester.com/GWJFOO4393
или Quadrillion угадывает квадриллион

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import random # milliardp.py
h1=0; h2=10**16;t=0; f=0
c = random.randrange(0,h2) #comp
h = random.randrange(0,h2) #human
while f<1:
    print(t,c,h)
    if h<c:
        print('MORE')
        a=h
        h=int((h+h2)/2)
        h1=a
    elif h>c:
        print('less')
        a=h
        h=int((h1+h)/2)
        h2=a
    else:
        print('win by', t, 'steps')
        f=1
    t+=1
Онлайн Питон Python встраивается на некоторые сайты:

https://trinket.io/embed/python/adae4501bd
0
6180 / 945 / 313
Регистрация: 25.02.2011
Сообщений: 1,381
Записей в блоге: 1
16.05.2023, 15:14
Цитата Сообщение от DAV78 Посмотреть сообщение
Программа Python
Чуть поправил (зачем флаги? зачем временные переменные? в Python можно и без них сделать
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import random
h1, h2 = 0, 10 ** 16
t = 0
c = random.randrange(h1, h2)
h = (h1 + h2) // 2
while h != c:
    print(f'Step {t}, c = {c}, h = {h}')
    if h < c:
        #print('MORE')
        h, h1 = (h + h2) // 2, h
    elif h > c:
        #print('less')
        h, h2 = (h1 + h) // 2, h
    t += 1
print(f'c = {h}, win by {t} steps')
Добавлено через 1 час 12 минут
А лучше так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import random
low, high = 0, 10 ** 16
steps = 0
c = random.randrange(low, high + 1)
while low <= high:
    mid = (low + high) // 2
    steps += 1    
    print(f'Step {steps}: c = {c}, low = {low}, mid = {mid}, high = {high}')
    if mid < c:
        low = mid + 1
    elif mid > c:
        high = mid - 1
    else:
        print(f'c = {mid}, win by {steps} steps')
        break
0
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
23.05.2023, 11:11  [ТС]
Предыдущий вариант онлайн https://rextester.com/LKKJ31409

Сегодня Milliard JavaScript

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Milliard JavaScript</title> </head> <body> <noscript>Vkluch JS</noscript>
 
https://rextester.com/PYYQS76244
 
<script>
 
h2=1000000000, h1=0, f=0, t=0, a=0 // Milliard.js
comp = Math.floor(Math.random() * h2)
human = Math.floor(Math.random() * h2)
while (f<1) 
{ document.write("<br/>" + t + " " + comp + " " + human)
if(comp < human)
    { document.write(" MORE") 
      a=comp; comp = Math.floor((comp+h2)/2); h1=a}
else if(comp > human)
    { document.write(" less") 
      a=comp; comp = Math.floor((h1+comp)/2); h2=a}
else { document.write(" win by " + t + " steps "); f=1}
t++}
 
</script>
 
</body> </html>
https://rextester.com/PYYQS76244

https://jdoodle.com/h/2Ul
0
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
30.05.2023, 19:19  [ТС]
Milliard C# угадывает 1 из 1'234'567'890
за количество шагов логарифмическое
N = LOG(10^9;2) = 30 и 10^3 = 2^10

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System; // milliardx.cs
namespace DANILIN { class Program
{ static void Main(string[] args)
{ Random rand = new Random();int t=0;
int h2=1234567890; int h1=0; int f=0; int a;
int comp = rand.Next(h2);
int human = rand.Next(h2);
while (f<1)
{ Console.WriteLine(); 
Console.Write("{0} {1} {2}", t, comp, human); 
if(comp < human)
{ Console.Write(" MORE");
a=comp; comp=(comp+h2)/2; h1=a; }
else if(comp > human)
{ Console.Write(" less");
a=comp; comp=(h1+comp)/2; h2=a;}
else {Console.Write(" win by {0} steps", t);f=1;}
t++; }
Console.ReadKey();
}}}

https://jdoodle.com/a/6bSk

https://rextester.com/DYVZM84267
0
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
13.09.2025, 22:44  [ТС]
Краткое содержание предыдущих сообщений:

На языках Python C++ C# JavaScript JS qbasic qb64
рассмотрены алгоритмы:

Функции
Простые числа
Угадывает число из миллиарда 10^9

Всякий раз проверяемо онлайн

Если некоторые онлайн компиляторы недоступны
добавлены ссылки на дополнительный компилятор
1-й в списках


Функции

Функции Python
https://ideone.com/Fu3VNn
https://rextester.com/EGXCM83414

Функции C++
https://ideone.com/iAIYrD
https://rextester.com/EKC21250

Функции C#
https://ideone.com/Nid1Fm
https://rextester.com/PYG11940

Функции JavaScript JS
https://ideone.com/FkB4wR
https://jdoodle.com/h/2Uj
https://rextester.com/HIQL79958

Функции qb64


Простые числа случайные распознаёт
либо вычисляет множители

Простые C++
https://ideone.com/oJ3EaL
https://ideone.com/Pi46x9
https://jdoodle.com/a/61FC
https://rextester.com/YDXE69472

Простые JavaScript JS
https://ideone.com/7gRbg8
https://ideone.com/Uv7iiX
https://jdoodle.com/h/2UZ
https://jdoodle.com/h/2V1

Простые C#
https://ideone.com/UDJI6Q
https://ideone.com/EIVcdL
https://rextester.com/VBXFL2777

Простые Python
https://ideone.com/3jRpTC
https://ideone.com/K2AsfH
https://rextester.com/QFZD94890
https://rextester.com/AAOHQ6342

Простые qbasic
https://jdoodle.com/a/696G

Простые Eratosfen Fortran
https://jdoodle.com/a/68X8


Угадывает число из миллиарда 10^9
за ходы логарифмические =log(10^9;2)=30

Миллиард C++
https://ideone.com/laXtmK
https://ideone.com/Gg7YS8
https://jdoodle.com/a/6bQN
https://rextester.com/QZEGM92902

Миллиард Fortran
https://jdoodle.com/a/6cWF

Миллиард Python
https://ideone.com/PKmrGV
https://jdoodle.com/a/6bRC
https://rextester.com/GWJFOO4393
https://trinket.io/embed/python/adae4501bd

Миллиард JavaScript JS
https://ideone.com/zTym9X
https://ideone.com/oeeXau
https://jdoodle.com/h/2Ul
https://rextester.com/PYYQS76244

Миллиард C#
https://ideone.com/zer1oF
https://ideone.com/E8pOqh
https://jdoodle.com/a/6bSk
https://rextester.com/DYVZM84267


Далее можем рассмотреть Универсальный алгоритм
Universal изучающий:

вывод на экран
ввод с клавиатуры
размер массива
массив 1-мерный
массив 2-мерный
случайные
сортировка
математика
цикл for
условие
цикл while
вывод в файл
считать из файла
таймер

Другие алгоритмы:

Сортировка 2-мерных массивов
Фибо Fibo
Рюкзак KnapSack
Ребус букв Криптарифма Альфаметик

Всякий раз проверяемо онлайн
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
15.09.2025, 14:23
Цитата Сообщение от DAV78 Посмотреть сообщение
Milliard C# угадывает 1 из 1'234'567'890
за количество шагов логарифмическое
Не угадывает (не всегда угадывает).
Миниатюры
Алгоритмы и языки и МЫ  
0
WH
1589 / 817 / 192
Регистрация: 10.09.2013
Сообщений: 3,293
Записей в блоге: 3
15.09.2025, 15:45
Цитата Сообщение от DAV78 Посмотреть сообщение
сортировка
Быстрая сортировка от А. Маркуса, язык фортран. Работает очень быстро, рекомендую попробовать. Но в онлайн компиляторе это работать не будет, нужен как минимум gfortran на своем компе.

Fortran
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
! qsort_reals.f90 --
!
!     Example belonging to "Modern Fortran in Practice" by Arjen Markus
!
!     This work is licensed under the Creative Commons Attribution 3.0 Unported License.
!     To view a copy of this license, visit http://creativecommons.org/licenses/by/3.0/
!     or send a letter to:
!     Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
!
!     Compact implementation of the QuickSort algorithm
!
!     Note:
!     Because the function uses Fortran 90 features, its interface should be made
!     explicit when using it in an actual program. This is easiest via a module.
!
module qsort_functions
implicit none
 contains
recursive function qsort_reals( data ) result( sorted )
    real, dimension(:), intent(in) :: data
    real, dimension(1:size(data))  :: sorted
 
    if ( size(data) > 1 ) then
        sorted = &
            (/ qsort_reals( pack( data(2:), data(2:) > data(1) ) ), &
               data(1),                                             &
               qsort_reals( pack( data(2:), data(2:) <= data(1) ) ) /)
    else
        sorted = data
    endif
end function qsort_reals
end module qsort_functions
 
 
!Тестирующая программа
program sort
use qsort_functions
implicit none
real, dimension (10000000) :: a
 
    call random_number(a)
    a = qsort_reals(a)
 
end program sort
0
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
16.09.2025, 05:15  [ТС]
Зная на чём споткнулся ИИ число именно 1048773993
легко проверить в другие компиляторы онлайн
и заодно проверить за секунды простое ли 1048773993
https://ideone.com/ZzVYxO

Онлайн Фортран Qsort https://ideone.com/u6NN5D
Оформить бы как в теме Сортировка половинами

Русская сортировка половинами (в простонародье сортировка Таноса)
там см. результаты

Выводим исходный массив дюжины первую и посл... и крайнюю
и далее сортируем и выводим время
и доказательство: сортированные дюжины первая и посл... и крайняя

Вообще сортировка имелась в виду пузырьковая
дабы сортировать мелочь типа матрицы внутри программ

Поэтому сегодня программа сортирующая матрицу по строкам и столбцам


Матрица сортировка C#

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
using System; // matrixsortx.cs
namespace matrixsort
{ class matrixsort
{ static void Main(string[] args)
 
{ Random rand = new Random(); int i,j,k,t; int n=3, m=5; 
  int[,] a = new int[n,m]; int[,] b = new int[n,m];
 
for (i=0; i<n; i++)
  { for (j=0; j<m; j++)
    { a[i,j] = rand.Next(9); b[i,j]=a[i,j];
        Console.Write(a[i,j]+" ");       
    } Console.WriteLine();
  }
Console.WriteLine();
 
for (i=0; i<n; i++)
  for (j=0; j<m-1; j++)
    for (k=j+1; k<m; k++)
      if (a[i,j]>a[i,k]) { t=a[i,j]; a[i,j]=a[i,k]; a[i,k]=t;}
 
for (i=0; i<n; i++)
  { for (j=0; j<m; j++) Console.Write(a[i,j]+" ");
        Console.WriteLine();
  }
Console.WriteLine();
 
for (i=0; i<n; i++)
  { for (j=0; j<m; j++) Console.Write(b[i,j]+" ");
        Console.WriteLine();
  }
Console.WriteLine();
 
for (j=0; j<m; j++)
  for (i=0; i<n-1; i++)
    for (k=i+1; k<n; k++)
      if (b[i,j]>b[k,j]) { t=b[i,j]; b[i,j]=b[k,j]; b[k,j]=t;}
 
for (i=0; i<n; i++)
  { for (j=0; j<m; j++) Console.Write(b[i,j]+" ");
        Console.WriteLine();
  }
Console.WriteLine();
Console.ReadKey();
}}}

https://rextester.com/JSYB65969
https://ideone.com/4i9BlO

Заодно видим: листинг включает название для сохранения

Результаты вида:

Code
1
2
3
4
5
6
7
    0 8 2 6 8   0 2 6 8 8 
    8 1 5 0 1   0 1 1 5 8 
    7 2 8 2 1   1 2 2 7 8 
    
    0 8 2 6 8   0 1 2 0 1 
    8 1 5 0 1   7 2 5 2 1 
    7 2 8 2 1   8 8 8 6 8
Хотелось бы увидеть встроенную qsort
тогда программа должна быть короче
0
 Аватар для abit
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,882
01.10.2025, 01:25
Матрица сортировка C#
Rust
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
use std::time::{SystemTime, UNIX_EPOCH};
 
struct SimpleRng {
    state: u64,
}
 
impl SimpleRng {
    fn new(seed: u64) -> Self {
        Self { state: seed }
    }
    
    fn next(&mut self) -> u32 {
        const A: u64 = 1664525;
        const C: u64 = 1013904223;
        const M: u64 = 1 << 31;
        
        self.state = (A.wrapping_mul(self.state).wrapping_add(C)) % M;
        (self.state % 10) as u32
    }
}
 
fn main() {
    let n = 3;
    let m = 5;
 
    let seed = SystemTime::now()
        .duration_since(UNIX_EPOCH)
        .unwrap()
        .as_nanos() as u64;
    let mut rng = SimpleRng::new(seed);
 
    let a: Vec<Vec<u32>> = (0..n)
        .map(|_| (0..m).map(|_| rng.next()).collect())
        .collect();
    
    let b = a.clone();
 
    println!("A:");
    a.iter().for_each(|row| {
        row.iter().for_each(|&val| print!("{} ", val));
        println!();
    });
    println!();
 
    let sorted_a: Vec<Vec<u32>> = a
        .iter()
        .map(|row| {
            let mut sorted_row = row.clone();
            sorted_row.sort();
            sorted_row
        })
        .collect();
 
    println!("сортировка по строкам A:");
    sorted_a.iter().for_each(|row| {
        row.iter().for_each(|&val| print!("{} ", val));
        println!();
    });
    println!();
 
    println!("B:");
    b.iter().for_each(|row| {
        row.iter().for_each(|&val| print!("{} ", val));
        println!();
    });
    println!();
 
    let mut sorted_b = b.clone();
    for j in 0..m {
        let mut column: Vec<u32> = (0..n).map(|i| b[i][j]).collect();
        column.sort();
        for (i, &val) in column.iter().enumerate() {
        sorted_b[i][j] = val;
        }
    }
 
    println!("сортировка по столбцам B:");
    sorted_b.iter().for_each(|row| {
        row.iter().for_each(|&val| print!("{} ", val));
        println!();
    });
}
0
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
07.10.2025, 04:01  [ТС]
Rust см. выше работает онлайн

https://ideone.com/U6cffV

Матрица сортировка JavaScript
включает в конце просто функцию sort

Копирую листинг и вставляю в блокнот
и копирую название из листинга MATRIXJ.htm
и сохраняю и стартует браузер

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<!DOCTYPE html>
<title>MATRIXJ.htm sort js JavaScript</title> 
<html> <body> <noscript>JS!</noscript>
 
<script>
var i,j,k, a=[], b=[], c=[]; var n=3, m=5; 
document.write("<br><br>")
 
for (i=0; i<n; i++)
  { a[i]=[], b[i]=[] 
    for (j=0; j<m; j++)
    { a[i][j]=Math.floor(Math.random()*9)
      b[i][j]=a[i][j]; 
      document.write(a[i][j] + " ")
    } document.write("<br>")
  } document.write("<br>")
 
for (j=0; j<m; j++)
    { c[j]=[] 
      for (i=0; i<n; i++)
        c[j][i]=b[i][j]
    }
 
for (i=0; i<n; i++) a[i] = a[i].sort() 
 
for (i=0; i<n; i++)
  { for (j=0; j<m; j++)
    { document.write(a[i][j] + " ")
    } document.write("<br>")
  } document.write("<br>")
 
for (i=0; i<n; i++)
  { for (j=0; j<m; j++)
    { document.write(b[i][j] + " ")
    } document.write("<br>")
  } document.write("<br>")
 
for (j=0; j<m; j++) c[j] = c[j].sort((a, b) => b - a) 
 
for (i=0; i<n; i++)
    for (j=0; j<m; j++)
        b[i][j] = c[j][i]
 
for (i=0; i<n; i++)
  { for (j=0; j<m; j++)
    { document.write(b[i][j] + " ")
    } document.write("<br>")
  } document.write("<br>")
 
</script></body> </html>
Онлайн:
https://ideone.com/JITEJd
https://jdoodle.com/h/2UB

И стартует браузер ?

У меня в браузере...
Фильтр мата или слов для Firefox
0
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
14.10.2025, 07:07  [ТС]
Матрица сортировка Python

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import random # matrixsortp.py
n=3; m=5; a=[1,1]; b=[1,1]
a=[[random.randrange(0,9) for i in range (m)] for j in range (n)]
b=[[1 for i in range (m)] for j in range (n)]
 
for i in range (n):
    for j in range (m):
        print ("%2d" % a[i][j], end=' ')
        b[i][j]=a[i][j]
    print()
print()
 
for i in range (n):
    for j in range (m-1):
        for k in range (j+1,m):
           if (a[i][j]>a[i][k]):
               t=a[i][j]; a[i][j]=a[i][k]; a[i][k]=t;
 
for i in range (n):
    for j in range (m):
        print ("%2d" % a[i][j], end=' ')
    print()
print()
 
for i in range (n):
    for j in range (m):
        print ("%2d" % b[i][j], end=' ')
    print()
print()
 
for j in range (m):
    for i in range (n-1):
        for k in range (i+1,n):
            if (b[i][j]>b[k][j]):
               t=b[i][j]; b[i][j]=b[k][j]; b[k][j]=t;
 
for i in range (n):
    for j in range (m):
        print ("%2d" % b[i][j], end=' ')
    print()
https://rextester.com/LVIB34467
https://trinket.io/python/6edfcab6012a
https://ideone.com/mSCqdg

Домашнее задание: в последн... в конечной сортировке
заменить вложенные циклы на функцию обратной сортировки
вида

Python
1
d.sort(reverse=True)
Или невозможно? Домашнее задание...

0
 Аватар для abit
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,882
15.10.2025, 23:47
DAV78,
Python
1
2
3
4
for j in range(m):
    sorted_column = sorted([b[i][j] for i in range(n)])
    for i in range(n):
        b[i][j] = sorted_column[i]
на Rust итак всё нормально за O(m*n*log(n)), не вижу смысла трогать
0
WH
1589 / 817 / 192
Регистрация: 10.09.2013
Сообщений: 3,293
Записей в блоге: 3
16.10.2025, 14:40
Цитата Сообщение от DAV78 Посмотреть сообщение
Вообще сортировка имелась в виду пузырьковая
дабы сортировать мелочь типа матрицы внутри программ

В современном фортране можно работать с сечениями массивов. Например, нужно отсортировать строки матрицы. Для этого, имея любую функцию сортировки, можно написать такой код. Причем цикл, опцией concurrent, можно задать параллельным.

Fortran
1
2
3
    do concurrent (i = 1:n) !параллельный цикл
        a(i,:) = qsort(a(i,:))
    end do
0
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
01.03.2026, 14:13  [ТС]
Задача без слов



Примитивное решение:

PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Dim s As Long: t=Timer
For i = 0 To 9: For h = 0 To 9: For g = 0 To 9
For f = 0 To 9: For e = 0 To 9: For d = 0 To 9
For c = 0 To 9: For b = 0 To 9: For a = 0 To 9
 
    If a * b - c <> 4 Then 5
    If d + e + f <> 8 Then 5
    If g / h + i <> 8 Then 5
 
    If a / d + g <> 9 Then 5
    If b + e + h <> 8 Then 5
    If c + f - i <> 6 Then 5
 
    Print a, b, c
    Print d, e, f
    Print g, h, i: Print: Print
 
5 s = s + 1: Next: Next: Next: Next: Next: Next
Next: Next: Next: Print s / 10 ^ 6; " mln", Timer - t
End
Задание: ускорить в 10^4 раз = в 10000 раз
Миниатюры
Алгоритмы и языки и МЫ  
0
 Аватар для Mikle Quits
787 / 307 / 17
Регистрация: 21.01.2023
Сообщений: 529
01.03.2026, 18:51
Цитата Сообщение от DAV78 Посмотреть сообщение
Задача без слов
Ну... по картинке задача не полностью описана, в частности, нигде не написано, что числа целые и из диапазона от 0 до 9, что я увидел по примеру решения.
Не знаю, в каком бейсике это делалось, а VB6 выдаёт сразу же ошибку деления на 0 (что естественно).
Заменил циклы для h и для d на For h = 1 To 9.
Заменил Timer на QueryPerformanceCounter для точности.
Скомпилировал со всеми оптимизациями:
Считает 30 сек.
Добавил Option Explicit, объявил все переменные, как Long:
Считает 0.67 сек.
Заменил Goto на цикл Do..Loop, так мне привычнее: быстродействие не изменилось.
Избавился от деления так:
Visual Basic
1
2
      If g <> (8 - i) * h Then Exit Do
      If a <> (9 - g) * d Then Exit Do
Считает 0.56 сек.
Дальнейшее ускорение - это уже надо избавляться от тупого брутфорса, вводить элементы ИИ логики.
Задача выдаёт три решения, что подозрительно. Возможно, нужно искать все числа в диапазоне от 1 до 9, тогда не будет деления на ноль, у задачи останется одно решение, а быстродействие ещё немного вырастет.
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
01.03.2026, 22:10
Цитата Сообщение от Mikle Quits Посмотреть сообщение
VB6 выдаёт сразу же ошибку деления на 0 (что естественно).
Там, скорее всего, должно делиться нацело. То есть, условие "если h не равно 0 и g % h равно 0".
0
 Аватар для Mikle Quits
787 / 307 / 17
Регистрация: 21.01.2023
Сообщений: 529
01.03.2026, 22:39
Цитата Сообщение от Shamil1 Посмотреть сообщение
условие "если h не равно 0 и g % h равно 0".
Мне кажется, я более кратко это выразил, избавившись от деления вообще.
1
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
01.04.2026, 09:55  [ТС]
Доказываем: 2+2=5

QB64 qbasic 2++2=5.bas

QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
' 2+2=5 ??? -3-3=-5 ??? 1 april 2020 
SCREEN 12
a = 2.4: b = 2.4: c = a + b ' da 2++2=5.bas
PRINT CINT(a); "+"; CINT(b); "="; CINT(c)
 
d = 2.4: a = 2.4: v = d + a ' da 2+2=5
PRINT _Round(d); "+"; _Round(a); "="; _Round(v)
 
d = -2.4: a = -2.4: v = d + a ' da -3-3=-5
PRINT INT(d); INT(a); "= "; INT(v)
 
END
' 2 + 2 = 5
' 2 + 2 = 5
'-3 -3 = -5

Python 3 2+2=5.py

Python
1
2
3
4
5
6
7
a=2.4; b=2.4; c=a+b # da 2+2=5.py 1 april 2020
 
print (round(a),"+", round(b), "=", round(c))
 
d=-2.4; a=-2.4; v=d+a # da -2-2=-5
 
print (round(d), round(a), "=", round(v))
# 2 + 2 = 5
#-2 -2 = -5

https://ideone.com/YSEQzF

https://rextester.com/VZJ49699

https://rextester.com/GSMC19146

https://ideone.com/CDq1Yf

C++

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream> // da 2+2=5.cpp 1 april 2020
#include <cmath> 
using namespace std; int main() 
{ setlocale (LC_ALL, "RUS");
 
double a = 2.4, b = 2.4; double c;
c = a + b;
cout <<  round(a) << " + "<< round(b) << " = "<< round(c) << "\n";
 
double d,v; d = -2.4, a = -2.4; 
v = d + a;
cout <<  round(d) << " " << round(a) << " = "<< round(v) <<  endl; 
 
system("pause"); }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.04.2026, 09:55

Реализовать алгоритмы построения прямой: простой пошаговый алгоритм и алгоритмы Брезенхема
1. Написать на языке PASCAL программу, реализующую алгоритмы построения прямой: простой пошаговый алгоритм и алгоритмы Брезенхема для...

Комбинаторные алгоритмы и алгоритмы на графы. Можно ли разделить элементы данного массива на 2 подмассива с одинаковой суммой элементов
Дан одномерный массив натуральных чисел выясните , можно ли разделить элементы данного массива на 2 подмассива с одинаковой суммой...

Линейные алгоритмы, разветвленные алгоритмы, простые циклы
Помогите сделать простые (для вас, но не для меня :-() лабораторные, скоро сессия, а разобраться совершенно не могу. 1. Дан радиус...

Циклические алгоритмы. Алгоритмы обработки последовательностей чисел
Помогите пожалуйста program Lab_3_1; const x1=1; xn=3; dx=0.2; a=3.9; b=2.3; var x,y,z:real; ...

Циклические алгоритмы. Алгоритмы обработки последовательностей чисел
Помогите пожалуйста... Преподаватель говорит что: 1. Программа считает правильно (за исключением того, что по условию диапазон...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
Новые блоги и статьи
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни 1. Механизм отложенного высвобождения фосфора Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ Реализована разная скорость. . .
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru