Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93

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

07.03.2023, 01:00. Показов 5639. Ответов 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,283
Записей в блоге: 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
Модератор
Эксперт функциональных языков программирования
3138 / 2286 / 469
Регистрация: 26.03.2015
Сообщений: 8,890
15.09.2025, 14:23
Цитата Сообщение от DAV78 Посмотреть сообщение
Milliard C# угадывает 1 из 1'234'567'890
за количество шагов логарифмическое
Не угадывает (не всегда угадывает).
Миниатюры
Алгоритмы и языки и МЫ  
0
WH
1589 / 817 / 192
Регистрация: 10.09.2013
Сообщений: 3,283
Записей в блоге: 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,858
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,858
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,283
Записей в блоге: 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
782 / 300 / 17
Регистрация: 21.01.2023
Сообщений: 523
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
Модератор
Эксперт функциональных языков программирования
3138 / 2286 / 469
Регистрация: 26.03.2015
Сообщений: 8,890
01.03.2026, 22:10
Цитата Сообщение от Mikle Quits Посмотреть сообщение
VB6 выдаёт сразу же ошибку деления на 0 (что естественно).
Там, скорее всего, должно делиться нацело. То есть, условие "если h не равно 0 и g % h равно 0".
0
 Аватар для Mikle Quits
782 / 300 / 17
Регистрация: 21.01.2023
Сообщений: 523
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера» Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит. Придуман Биллом Госпером в 1970-х, опубликован в. . .
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb"> <style> <!]> </ style> <g id="bush"> </ g> </ svg> function fn(){ let rost;/ / высота древа let xx=165,yy=210,w=256;
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов, содержащихся в реализации модуля. По-умолчанию все члены модуля доступны: module Foo let x = 10 let boo () = printfn "boo" . . .
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru