测试值是否在 list/array 中(Ti-Basic)
Testing if value is in list/array (Ti-Basic)
有没有办法测试一个值是否在列表中?
在 Python 中,我认为你可以做类似的事情
'如果 n 在 myList 中:
打印("Value N is in the list.")'
我不想使用 for 循环来分别检查每个值,除非它是唯一的选择。
我使用的是 Ti-84 Plus。
这个搜索思路来自TI-Basic Developer,非常精彩:
假设您有一个名为 x
的值和一个名为 L
.
的列表
:If max(1/(1+(abs(L-x))))=1
:Then
//value is in list
:Else
//value is not in list
:End
就是这样!
这是它的工作原理:
abs(L-x)
- 首先,它从列表的每个值中减去搜索的数字并得到它的绝对值。
max(1/(1+(abs(L-x))))
- 之后,寻找其中最大的元素,加1,1除以它.
:If max(1/(1+(abs(L-x))))=1
- 如果它是 1,则该值在列表中。为什么?因为
1 / 1 + 0
是 1(数字减去它本身总是 0)而 0 是 1 / 1 + x
的最大可能值(当然对于正数)。如果最大值小于 1,则确定搜索到的值不在列表中。
假设我已经正确考虑,这应该可以工作。非常简单,其中 L₁
是要搜索的列表,X
是要查找的值。
max(not(L₁-X
分步分析:
L₁-X
:从列表中的所有内容中减去值。现在,如果此列表包含零,则表示我们的值在 L₁
. 中
not(L₁-X
:反转列表中的所有内容。这会将所有零转换为一,将其他所有内容转换为零。现在,如果此列表包含一个,则表示我们的值在 L₁
中。如果列表全为零,则不是。
max(not(L₁-X
:获取列表中的最大值。如上所述,如果值不在 L₁
内,则列表将全为零,因此最大值将为零。如果L₁
有里面的值,最大值就是1。
这使得检查变得如此简单:
If max(not(L₁-X
Disp "The value was found:",X
有没有办法测试一个值是否在列表中? 在 Python 中,我认为你可以做类似的事情 '如果 n 在 myList 中: 打印("Value N is in the list.")'
我不想使用 for 循环来分别检查每个值,除非它是唯一的选择。 我使用的是 Ti-84 Plus。
这个搜索思路来自TI-Basic Developer,非常精彩:
假设您有一个名为 x
的值和一个名为 L
.
:If max(1/(1+(abs(L-x))))=1
:Then
//value is in list
:Else
//value is not in list
:End
就是这样!
这是它的工作原理:
abs(L-x)
- 首先,它从列表的每个值中减去搜索的数字并得到它的绝对值。
max(1/(1+(abs(L-x))))
- 之后,寻找其中最大的元素,加1,1除以它.
:If max(1/(1+(abs(L-x))))=1
- 如果它是 1,则该值在列表中。为什么?因为
1 / 1 + 0
是 1(数字减去它本身总是 0)而 0 是1 / 1 + x
的最大可能值(当然对于正数)。如果最大值小于 1,则确定搜索到的值不在列表中。
假设我已经正确考虑,这应该可以工作。非常简单,其中 L₁
是要搜索的列表,X
是要查找的值。
max(not(L₁-X
分步分析:
L₁-X
:从列表中的所有内容中减去值。现在,如果此列表包含零,则表示我们的值在L₁
. 中
not(L₁-X
:反转列表中的所有内容。这会将所有零转换为一,将其他所有内容转换为零。现在,如果此列表包含一个,则表示我们的值在L₁
中。如果列表全为零,则不是。max(not(L₁-X
:获取列表中的最大值。如上所述,如果值不在L₁
内,则列表将全为零,因此最大值将为零。如果L₁
有里面的值,最大值就是1。
这使得检查变得如此简单:
If max(not(L₁-X
Disp "The value was found:",X