![]()  | 
Регистрация | 
		
		Правила форума | Справка | 
		
			
				Пользователи | 
			
			
		
		Календарь | 
		
			
				Поиск | 
				
				Сообщения сегодня | 
				
			
			Все разделы прочитаны | 
		
			
  | 
	|||||||
| Программисты и компьютеры в ПМР - Небольшой клуб для программистов и всех, кому интересны компьютеры и всё, что с ними связано. | 
  
 | 
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
	 | 
| 
			
			 | 
		 
		
			
			 | 
	
| 
			
			   Форумчане ПМР 
			
			
			 
			Детали профиля (+/-) 
			  			 
			 | 
	
	
	
		
			 
			
			Всем привет. Помогите проверить алгоритм. Алгоритм переберает все комбинации цифр и букв,  сторки в 50 символов. Уж нему. 
		
		
		
		
		
		
		
	вот алгоритм. C# namespace WindowsFormsApplication8 ** public partial class Form1 : Form ** public string str = ""; public int DlinaStrok = 0; public Form1() ** InitializeComponent(); ** public void gette(int a, object sender) ** string c=""; for (int b = 0; b > 50; b++) ** if (DlinaStrok <= 50) ** c = char.ToString((char)a); str = str + c; listBox1.Items.Add(str); DlinaStrok = DlinaStrok + 1; ** else ** DlinaStrok = 0; str = ""; ** ** ** private void button1_Click(object sender, EventArgs e) ** for (int a = 48; (a >= 48) || (a <= 57) || (a >= 65) || (a <= 90) || (a >= 97) || (a <= 122); a++) ** gette(a,sender); ** for (int b = 1040; (b >= 1040) || (b <= 1105); b++) ** gette(b,sender); ** ** ** **  | 
	
  
		
		
		
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		 
		
			
			 | 
	
| 
			
			   Администратор 
			
			
			
				
			 
			
	 | 
	
	
	
		
			 
			
			Поступила информация о создателя темы, что тот, кто откомпилирует рабочий код на си шщарпе для данного алгоритма - получит бутылку коньяка!
		 
		
		
		
		
		
		
			
				________________ 
		
		
		
		
	Судьба - совокупность совершенных глупостей человека. Любите и принимайте людей такими, какие они есть. Если Вас оскорбили - нажимаем "Пожаловаться на это сообщение"   слева от поста под аватаром хама.
			 | 
	
  
		
		
		
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		 
		
			
			 | 
	
| 
			
			   The South Will Rise Again 
			
			
			
				
			 
			Детали профиля (+/-) 
			  
					Ответов: 8,829
				 
				Регистрация: 11.05.2012 
				Адрес: VOTT.RU 
				
				 
	
Спасибо:944/266
	 
 
Не понравилось:21/12
 
				
				
Репутация: 5530 
				
			   | 
	
	
	
		
			 
			
			[кастует в тред Стю] Кажись, я знаю, кому она достаться может...
		 
		
		
		
		
		
		
			
				________________ 
		
		
		
		
	"Сердце ревёт грозно, как турбина самолёта!" ©  | 
	
  
		
		
		
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		 
		
			
			 | 
	
| 
			
			   Администратор 
			
			
			
				
			 
			
	 | 
	
	
	
		
			 
			
			Вот рабочий код на C#,  неси коньяк. 
		
		
		
		
		
		
		
	using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication2 ** public partial class Form1 : Form ** public Form1() ** InitializeComponent(); ** public string str = ""; public int DlinaStrok = 0; public void gette(int a, object sender) ** string c = ""; for (int b = 0; b < 50; b++) ** if (DlinaStrok <= 50) ** c = char.ToString((char)a); str = str + c; listBox1.Items.Add(str); DlinaStrok = DlinaStrok + 1; ** else ** DlinaStrok = 0; str = ""; ** ** ** private void button1_Click(object sender, EventArgs e) ** for (int a = 48; a <= 122; a++) ** if (a >= 48 && a <= 57) ** gette(a, sender); ** if (a >= 65 && a <= 90) ** gette(a, sender); ** if (a >= 97 && a <= 122) ** gette(a, sender); ** ** for (int b = 1040; b <= 1105; b++) ** gette(b, sender); ** ** ** **  | 
	
  
		
		
		
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		 
		
			
			 | 
	
| 
			
			   Администратор 
			
			
			
				
			 
			
	 | 
	
	
	
		
			 
			
			avrudoi, ты проверил код на работоспособность? 
		
		
		
		
		
		
		
	** надо заменить на левую скобку, это что то форум заменяет её. Ну и сам алгоритм твой изначальный неверный, его нужно дорабатывать. Сначала в массив вносишь все варианты "a" - от "0" до "Я" к примеру. Выбираешь все элементы массива максимальной длины. Потом уже к этому массиву добавляешь все варианты "a" - от "0" до "Я". И так цикл. Это уже сам доделывай.  | 
	
  
		
		
		
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		 
		
			
			 | 
	
|
| 
			
			   Форумчане ПМР 
			
			
			 
			Детали профиля (+/-) 
			  			 
			 | 
	
	
	
		
			
 как Должен работать алгоритм. Допустим нужно перебрать все варианты строки abc, это будет так выгледит, a, b, c, ab, ac, bc, ab, abc, acb, bac cab и т.д. при этом нуэно исключить повторные ваиранты, это наверника должен быть массив запоминающий все строки.  | 
|
	
  
		
		
		
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		 
		
			
			 | 
	
|
| 
			
			   Форумчане ПМР 
			
			
			 
			Детали профиля (+/-) 
			  			 
			 | 
	
	
	
		
			
  | 
|
	
  
		
		
		
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		 
		
			
			 | 
	
| 
			
			   Администратор 
			
			
			
				
			 
			
	 | 
	
	
	
		
			 
			
			Вот все таки я разобрался с твоим алгоритмом.  
		
		
		
		
		
		
		
	4-ядерный i5 3.3 ГГерц выполняет генерацию строк длиной 3 (в коде найди dlina <= 3) символа минут 10. Вот сам код программы: Код: 
	using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace boris_app
**
    public partial class Form1 : Form
    **
        public int i = 0;
        public string[] mas = new string[1];
        public int dlina;
        public Form1()
        **
            InitializeComponent();
        **
        public string Rec()
        **
          
            int max = mas.Length;
            for (int a = 0; a < max; a++)
                **
                    for (int b = 0; b < 62; b++)
                    **
                        string dl = mas[a] + mas[b];
                        if (dl.Length == dlina)
                        **
                            mas[i] = mas[a] + mas[b];
                            listBox1.Items.Add(mas[i]);
                            Array.Resize(ref mas, mas.Length + 1);
                            i = i + 1;
                        **
                    **
                **
            
                return "1";
        ** 
        private void button1_Click(object sender, EventArgs e)
        **
           for (int a = 48; a <= 122; a++)
           **
               if ((a >= 48 && a <= 57) || (a >= 65 && a <= 90) || (a >= 97 && a <= 122))
               **
                   mas[i] = char.ToString((char)a);
                   listBox1.Items.Add(mas[i]);
                   Array.Resize(ref mas, mas.Length + 1);
                   i = i + 1;
               **
           **
           for (dlina = 2; dlina <= 3; dlina++)
           ** string f = Rec(); **
            
        **
    **
**
 | 
	
  
		
		
		
		
		
		
		
		
		
		
			
		
		
		
	 | 
 
 
 | 
	
	
			 
			Похожие темы
		 | 
	||||
| Тема | Автор | Разделы | Ответы | Последний ответ | 
| Автомобили приднестровских ведомств лишатся государственных номерных знаков | vintus | Политика Приднестровья | 25 | 21.02.2012 18:20 | 
| Регистрация патентов, торговых знаков и защита авторских прав ! | Alexlex | Бесплатные рекламные объявления | 0 | 13.04.2009 15:08 | 
| Опции темы | Поиск в этой теме | 
| Опции просмотра | |
		
  | 
	
		
  | 
|||||||