Форум программистов, компьютерный форум, киберфорум
Наши страницы
Другие языки программирования
Войти
Регистрация
Восстановить пароль
 
Slenon
3 / 3 / 3
Регистрация: 25.07.2016
Сообщений: 139
#1

Tcl - создание списка из случайных чисел - Программирование

13.09.2017, 02:46. Просмотров 198. Ответов 0
Метки нет (Все метки)

Данный код должен создавать список из случайных чисел
размерностью a, без 0, без повторов, без лакун ...
Код
proc Vvod {a} { 
    global t  
    puts stdout { Vvedite a =}
    set a [gets stdin]
    set t [format "%d" $a] 	   	   
}
 proc ldelete_val {list val} {
    set ix [lsearch -exact $list $val]
   if {$ix >= 0} {
     return [lreplace $list $ix $ix]
	 } else {
	 return $list
   }
}
 proc Qwer {t} {
      set order {0}
	  set q 0
   while {$q < $t} {
      set k 0
	  set n [expr {round(rand()*$t)}]
   if {$n != 0} {
     foreach i $order {if {$i != $n} {	 
	  incr k	  
	        }
         } 			 
	  set w [llength $order]	  
   if {$w == $k} {    
#---------------------------------------------------------------   
      set order [ldelete_val [lappend $order $n] 0]	  
# Я считаю что проблема в этой строке
#---------------------------------------------------------------
	     }
      }
      set order1 $order
	  set q [llength $order1]      	  	  
   }
   return $order1
}
    while 1 {
      Vvod a
	if {$t == "n"} {
	  break } 
	  set order [Qwer $t]
      puts stdout "order = $order"   
}
Для знатоков Groovy, или на худой конец Java, следующий код
делающий то же самое ...
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package groovy
def Vvod () {print "Vvedite n = "; s = System.in.newReader().readLine(); n = s as Integer}
def Spisok (n) {
    order = [null]; Q = 0; 
  while (Q < n) {
     J = 0; t = Math.round(Math.random() * n)
    if (t != 0) {for (i in order) {if (t != i) {++J} }
      if (J == order.size()) {order = order + t - null}
      }           
      order1 = order; Q = order1.size()
   }       
   return order1
}
def Vivod () {print "order1 = "; println order1}
while (1)  {
  Vvod (); if(n == "n") {break}
  Spisok (n)
  Vivod ()
}
Как исправить код?!

Добавлено через 1 час 23 минуты
Проблема решена:
Java
1
set order [ldelete_val [lappend order $n] 0]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2017, 02:46
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Tcl - создание списка из случайных чисел (Программирование):

[TCL] Чем компилировать TCL?
Очень актуальной на настоящий момент для меня является известная программа...

Генератор случайных чисел
subroutine Rundom(a,b,Number,k) implicit none integer i real(4) rn...

Первые 100 случайных чисел
Доброго времени суток. Понимаю задача простая но срочно нужно сделать а...

Встроенный генератор случайных чисел
Здравствуйте! Есть ли встроенный генератор случайных чисел в g77? Если &quot;да&quot;, то...

Генератор случайных чисел с заданной амплитудой и вероятностью возникновения
Здравствуйте! Помогите пожалуйста составить программу генератора случайных...

Генерация случайных чисел
Нужно генерировать определённое количество случайных чисел в единиц в единицу...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2017, 02:46
Привет! Вот еще темы с решениями:

Создание списка случайных чисел
Текст программы Domains Sp=integer* Predicates Spisok...

Написать процедуру заполнения двунаправленного списка из N случайных чисел
Народ помогите разобраться с задачей. Условие звучит так: Написать процедуру...

Создание алгоритма случайных чисел
Может у кого завалялся курсачь на тему : создание алгоритма случайных чисел....

Поменять местами первый и максимальный элементы списка случайных целых чисел
Помогите плиз Составить программу, содержащую процедуру смены местами первого...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru