根据Wikipedia的说法,强大的Darboux功能是
每个(非空)打开间隔的图像都是整个实线
换句话说,如果给定3个任意实数a,b和y,则函数强烈是Darboux ,总是有可能在a和b之间(相异)找到一个x,使得f (x )= y。
出于这一挑战的目的,我们将强烈考虑使用Darboux函数代替理性。
您面临的挑战是编写一个程序或函数以:
- 给出每个有理数输入的有理数作为输出,
- 对于给定的输入,总是给出相同的输出,并且
- 具有强烈的Darboux属性。
输入和输出可以是以下之一:
- 一种任意精度的数字类型,如果您的语言有一种(或具有一种用于该语言的库,例如GMP)。
- 数字的字符串表示形式,您可能会假设该数字将始终包含小数点,并且在每一侧至少包含一位数字。它可以是任何碱,但输入和输出必须是相同的基。您可以使用任何字符集作为数字和小数点(但同样,输入和输出之间的字符必须一致)。
输入将始终具有终止基数扩展。至于输出,根据您对功能的选择,理论上它的基数可能会是不终止的,您可以选择以下任意一种:
- 永远输出数字。
- 接受一个额外的整数作为输入,并输出至少那个位数。
- 输出至少与输入中的数字一样多的数字(可能包含尾随零)。
注意,通过这一挑战的性质,约定数可假定为是通过标准编号类型可表示没有不适用,除了在上面的选项2中描述的第二输入端。
为避免仅在非终止理性上定义的函数出现漏洞,您的提交必须能够在实践中任意产生接近所需值的输出。形式上,给定有理数,,和,必须有一个以您选择的底数终止的有理数,使得和。
为了给您一些想法,以下是Conway base 13函数的说明:
- 将转换为以13为底并删除小数点。
- 如果结果的格式为,其中和仅由0到9的数字组成,则。
- 如果结果的格式为,其中和仅由0到9的数字组成,则。
- 否则,。
此功能强烈地是Darboux。例如,假设我们要在123.456 13和123.457 13之间找到一些,以使f (x )= 7.89。以13为基的值123.456 A 7 C 89 13将满足此要求。
您提交的内容可能是此功能的实现,尽管我怀疑还有其他一些强烈的Darboux函数要实施的要短得多。:)