Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

           Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
           И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - https://clck.ru/fCqwP

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2022, 22:43   #101
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,067
По умолчанию

Не большое замечание.
сфинкс
1. Списки - это не массивы, а списки. И это важно.
2. Сортировка делается методом sort() или sorted(). Почитайте.
3. Поиск минимума и максимума, например, в списке: max() и min().
4. Для организации массивов любой размерности и с заданными или случайными значениями используйте библиотеку numpy. Посмотрите и в сторону срезов, как они реализованы со списками или, например, массивами библиотеки numpy.
5. ...
Цитата:
в учебниках пока не встречал

массив N нулей
Код:
N=10
a=[]
a.append([0]*N)
print (a)
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
Да Вы батенька просто лентяй. Это должны знать даже школьники. Поищите, например:
Д.М. Ушаков, ЕГЭ-2022 : Информатика : 20 тренировочных вариантов экзаменационных работ
для подготовки к единому государственному экзамену.
Порешайте задачки используя Python. И будет Вам счастье

Пример:
Цитата:
Исполнитель Редактор получает на вход строку цифр и преобразовывает её.
...
Какая строка получится в результате применения приведённой ниже про-
граммы к строке, состоящей из 61 идущих подряд цифр 1?
Кстати, Ваш пример может быть короче:
Код:
N = 10
a = [0]*N   # Получили список или
a = [[0]*N] # как у Вас, получили вложенный список
PS: Успехов в изучении этого языка.
И помните, нет
Цитата:
все будто бэйсиковские
, а есть человеческая мудрость, которая ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 01.06.2022, 09:47   #102
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 784
По умолчанию

Предыдущее Python сообщение учтено мной ещё раньше:

n=5; N=n+1; G=5; a=2**N
L=[]; C=[]; e=[]; j=[]; q=[]; s=[]; d=[];
L=[1]*n; C=[1]*n; e=[1]*a
j=[1]*n; q=[0]*a; s=[0]*a; d=[0]*a

а в это время сделана версия C#
используя только мои наработки
зато интернет учебники не потребовались


C# Knapsack 0-1 Рюкзак

Классическая задача про рюкзак решается многими способами
оглавление: http://rosettacode.org/wiki/Knapsack_problem
Long read: rosettacode.org/wiki/Knapsack_problem/0-1

Новейшая моя программа синтезирует все шифры 0 и 1
добавляя лишний регистр и 0 остаётся слева в шифре

Количество сравнений уменьшается с N! до 2^N например
N=10 N!=3628800 >> 2^N=1024 стало в 3500 раз лучше

Автоматически присваиваются случайные значения
количества и качества и получается интеграл стоимости



Код:
using System;using System.Text;		// KNAPSACK 0-1 DANILIN 	
namespace Knapsack { class Program { static void Main()
    
{ int n=5; int G=5; int u=n+1; int a=Convert.ToInt32(Math.Pow(2,u)); 
int[] L = new int[n]; int[] C = new int[n]; int[] j = new int[n]; 
int[] q = new int[a]; int[] S = new int[a]; int[] d = new int[a]; 
int dec; int i; string[] e = new string[a]; 
int h; int k; int max; int m; Random rand = new Random();

for (i=0; i<n; i++) // rextester.com/OIALC94208
{L[i]=1+rand.Next(3); C[i]=10+rand.Next(9);
Console.Write(i+1); Console.Write("   ");
Console.Write(L[i]); Console.Write("   "); 
Console.Write(C[i]);Console.WriteLine(); 
} Console.WriteLine();
 
for (h = a-1; h>(a-1)/2; h--) 
{ dec=h; while (dec > 0)
{ e[h] = dec % 2 + e[h]; dec/=2; }
if (e[h] == "") {e[h] = "0";}
e[h]=e[h].Substring(1,e[h].Length-1);

for (k=0; k<n; k++)
{j[k]=Convert.ToInt32(e[h].Substring(k,1));
 
q[h]=q[h]+L[k]*j[k]*C[k];
d[h]=d[h]+L[k]*j[k];}
    
if (d[h]<= G)
{ Console.Write(G);  Console.Write("  "); 
 Console.Write(d[h]); Console.Write("  "); 
 Console.Write(q[h]); Console.Write("  "); 
 Console.WriteLine(e[h]);} 
} Console.WriteLine();
 
max=0; m=1;
for (i=0; i<a; i++)
{ if (d[i]<=G && q[i]>max)
{ max=q[i]; m=i;}}
 
Console.Write(d[m]); Console.Write("  "); 
Console.Write(q[m]); Console.Write("  "); 
Console.WriteLine (e[m]);}
}}

Код:
# Mass Cost
1 2 12
2 3 17
3 1 14
4 3 17
5 1 13
Chifer Mass Cost 
11000 5 5 75
01001 5 4 64
00111 5 5 78 !!!
00110 5 4 65
00101 5 2 27
Mass MAX Chifer
5 78 00111
Интеграл количества и качества ?

https://www.youtube.com/watch?v=e5iNHnyuEJQ
учим C# & basic & excel https://programmersforum.ru/showthre...=327446&page=9 Приоритет Windows никому ничего нерекомендую https://programmersforum.ru/showthre...=338502&page=2
сфинкс вне форума Ответить с цитированием
Старый 04.06.2022, 13:52   #103
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 784
По умолчанию

иностранцы поняли Рюкзак Knapsack C# с 5-го раза
только после моего исправления названий переменных и структуры
и ещё яснее вывод на экран подряд

Код:
using System;		// Knapsack C# binary DANILIN
using System.Text;	// rextester.com/YRFA61366
namespace Knapsack 
{ 
class Knapsack  
    { 
    static void Main()
        { 
            int n = 7; 
            int Inside = 5; 
            int all=Convert.ToInt32(Math.Pow(2,(n+1))); 
            int[] mass = new int[n]; 
            int[] cost = new int[n]; 
            int[] jack = new int[n]; 
            int[] quality = new int[all]; 
            int[] amount = new int[all];   
            int i; 			// circle
            int k; 			// circle
            int dec;  
            string[] bin = new string[all]; 
            int list; 
            int max;
            int max_num;
            Random rand = new Random();

            for (i=0; i<n; i++)
            {
                mass[i]=1+rand.Next(3);
                cost[i]=10+rand.Next(9);
                Console.WriteLine("{0} {1} {2}", i+1, mass[i], cost[i]); 
            } 
            Console.WriteLine();

            for (list = all-1; list>(all-1)/2; list--) 
            { 
                dec=list; 
                while (dec > 0)
                { 
                    bin[list] = dec % 2 + bin[list]; // from 10 to 2 
                    dec/=2; 
                }
                if (bin[list] == "") 
                {
                    bin[list] = "0";
                }
                bin[list]=bin[list].Substring(1,bin[list].Length-1); 
                for (k=0; k<n; k++) // inside 01
                {
                    jack[k]=Convert.ToInt32(bin[list].Substring(k,1));
                    quality[list]=quality[list]+mass[k]*jack[k]*cost[k]; 	// integral of costs
                    amount[list]=amount[list]+mass[k]*jack[k]; 	// integral of mass
                }        
                if (amount[list]<= Inside)		// current mass < Knapsack
                { 
                    Console.WriteLine("{0} {1} {2} {3}", Inside, amount[list], quality[list], bin[list]); 
                } 
            } 
            Console.WriteLine();

            max=0; 
            max_num=1;
            for (i=0; i < all; i++)
            { 
                if (amount[i]<=Inside && quality[i]>max)
                { 
                    max = quality[i]; max_num =i ;
                }
            }
            Console.WriteLine("{0} {1} {2}",amount[max_num],quality[max_num],bin[max_num]);
        }
    }
}
и ещё мной создана версия таблица Рюкзак Эксцель Knapsack Excel
да и ещё на языках Python & qbasic & qb64 программа короче чем C#



Плюс создан этюд пока на qbasic qb64 xonix ксоникс

учим C# & basic & excel https://programmersforum.ru/showthre...=327446&page=9 Приоритет Windows никому ничего нерекомендую https://programmersforum.ru/showthre...=338502&page=2

Последний раз редактировалось сфинкс; 04.06.2022 в 20:01.
сфинкс вне форума Ответить с цитированием
Старый 08.06.2022, 13:16   #104
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 784
По умолчанию

Простые числа ускорены: корень выведен из цикла
и возможно считать простое число по счёту такое-то
и выяснено: в диапазоне до 1 миллиона чисел: простых чисел 78 тысяч

Python: число простое или множители

Код:
import time; from random import randint # PRIME_mult.py 
p = randint(1, 2**25); s=int(p**0.5); f=0; j=2; q=0;    # p=2**31-1;
while f < 2:             # rextester.com/QFZD94890
    if j >= s:           # 2**31-1 = 2_147_483_647
        f=2              # max 2_308_621_829
    if p % j == 0:
        q=1
        print (p,j,int(p/j))
    j+=1
if q != 1:
    print(p," Prime", p/10**9, " BillionS")
print(time.perf_counter(), " seconds")
QB64: число простое или множители

Код:
Dim p As Long: f=0: j=2: q=0: t=Timer: ' p = 2^31-1:
Randomize Timer: p = int(rnd*2^25): s=p^0.5 ' PRIME_mult.bas 
While f < 1 
    If j >= s Then f=2
    If p Mod j = 0 Then q=1: Print p, j, Int(p/j)
    j = j + 1
Wend
If q <> 1 Then Print p, " Prime", p/10^9, " BillionS"
Print p, Timer — t
C#: число простое или множители

Код:
using System; using System.Text; // PRIME_mult.cs 
namespace prime // rextester.com/VBXFL2777
{ class Program
    { static void Main(string[] args)
        { var start = DateTime.Now; int f=0; int j=2; int q=0;
            Random rand = new Random(); // long p = 2147483648-1;
            long p = rand.Next(Convert.ToInt32(Math.Pow(2, 22))-1);
            long s = Convert.ToInt32(Math.Pow(p,0.5));
            while (f < 1)
            { if (j >= s)
                { f=2; }
              if (p % j == 0)
              { q=1; Console.WriteLine("{0} {1} {2}",p,j,Convert.ToInt32(p/j));}
              j++;
            }
if (q != 1) { Console.WriteLine(«Prime {0} BillionS», p); }
var finish = DateTime.Now;
Console.WriteLine(finish — start);
Console.ReadKey();
}}}
Плюс создан qbasic qb64 XONIX мульти летающий Ксоникс

анимация 66 кБ и выше 45 кБ
учим C# & basic & excel https://programmersforum.ru/showthre...=327446&page=9 Приоритет Windows никому ничего нерекомендую https://programmersforum.ru/showthre...=338502&page=2

Последний раз редактировалось сфинкс; 08.06.2022 в 13:48.
сфинкс вне форума Ответить с цитированием
Старый 10.06.2022, 01:00   #105
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,067
По умолчанию

Цитата:
число простое или множители
Грамотно надо писать так: "число простое или составное?" или "простое или составное число", ...

По поводу множителей - это сюда: https://ru.wikipedia.org/wiki/Умножение
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ

           Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
           Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
макрос Excel Visual Basic arly123 Помощь студентам 0 20.04.2013 01:43
Visual Basic Microsoft Excel Людмила. Помощь студентам 3 23.11.2012 19:51
Задача Basic Excel tooooool Помощь студентам 0 20.04.2012 20:00
Kак связать Visual Basic с Excel Vceznayka Microsoft Office Excel 2 23.12.2011 04:12
Visual Basic интегрированный в Excel a1b2 Microsoft Office Excel 3 23.12.2010 19:53