Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Vamos tomar como exemplo:
se você mudar até mesmo o bitness da máquina, você muda para 64 bits e a precisão da máquina aumentou, sua fórmula deixará de funcionar, pois a precisão da máquina será muito maior do que você definiu em seu erro.
Com todo respeito.
P.S. pode haver outras opções onde sua fórmula falhará em uma gama de números. erro de ajuste constante de mudança para uma máquina diferente, ou mudanças no compilador, que você não é informado, ou quando você muda a representação dos números na máquina, ou de cortar uma parte fracionada do número ao compilar uma nova versão do terminal ... Você não sabe o que pode mudar, e não acho que seja uma boa idéia fazer um SE ou sofrer para adivinhar o que vai acontecer ao escrever um erro uma e outra vez...
Acho que isto é algo a se pensar.
Eu discordo. A fórmula(y=(int)(x+0,99999999999999999997);) não deixará de funcionar quando a precisão for aumentada, ela funcionará da mesma maneira. Como antes, o erro ocorrerá na faixa da parte fracional do número entre DBL_EPSILON (o valor atual: 0,00000000000002222204460492503131) e 0,0000000000000003. Mesmo que DBL_EPSILON diminua para zero (o que, é claro, não pode), a faixa aumentará pelo tamanho do DBL_EPSILON atual, ou seja, por 2,2204460492503131e-016. Acredito que se pode até ignorar tal faixa de erros.
E qual é o termo "precisão da máquina", de qualquer forma. Há precisões padronizadas como a dupla e outros tipos. Seu raciocínio não conta. Eu não direi nada sobre P.S.)) Tenho medo de ofender.
Com todo respeito.
Eu discordo. A fórmula(y=(int)(x+0,99999999999999999997);) não deixará de funcionar quando a precisão for aumentada, ela funcionará da mesma maneira. Como antes, o erro ocorrerá na faixa da parte fracional do número entre DBL_EPSILON (o valor atual: 0,00000000000002222204460492503131) e 0,0000000000000003. Mesmo que DBL_EPSILON diminua para zero (o que, é claro, não pode), a faixa aumentará pelo tamanho do DBL_EPSILON atual, ou seja, por 2,2204460492503131e-016. Acredito que se pode até ignorar tal faixa de erros.
E qual é o termo "precisão da máquina", de qualquer forma. Há precisões padronizadas como a dupla e outros tipos. Seu raciocínio não conta. Eu não direi nada sobre P.S.)) Tenho medo de ofender.
Respeitosamente.
Respeite-se, qualquer um pode esfregar seu rosto na sujeira, vale a pena dar a um adversário uma razão para fazê-lo sendo rude? Todos nós evoluímos em algo, enquanto outras coisas simplesmente não são interessantes ou não são importantes para nós.
Já que estamos falando de assembler e o que você imagina que acontece com o código depois do compilador, vou lhe dizer algumas frases que você pode entender.
Como um processador tem um número limitado de bits em cada registro, adicionar e subtrair ou qualquer outra operação nesses registros tem alguns aspectos complicados quando se trata de bandeiras.
Como alguém que trabalhou em assembler, você deve entender do que estamos falando.
então me diga no comando ADD em diferentes modelos do processador se haverá um estouro, se você escrever código na linguagem de montagem usando o mesmo número em diferentes modelos e em geral ele não pode caber em nenhum registro e será truncado, de 8 bit última geração para 64 bit e mais geração atual e como ele pode mudar no futuro (o desenvolvimento tecnológico é tão passageiro, passou apenas 40 anos e já temos um processador multi-core em vez de uma lâmpada no início dos anos 80)?
meu respeito.
Com todo respeito.
Muito bem, senhores, vocês já se manifestaram. Mudarei a função de tetos especialmente para você:
Esta variante é 25-50% mais lenta do que a variante:y=(int)(x+0,99999999999999999997); mas é maximamente correta, funciona para números inteiros negativos e é 3 vezes mais rápida do que o ceil(x).
Mas eu, como cidadão comum e fracassado, vou usar a variante com noves, porque considero todos os seus argumentos chatos e para mim, alguém que tem programado em assembler há muito tempo, e portanto sabe o que acontece com o código após a compilação, é demais - colocar cheques onde você pode passar sem eles.
A personalização tem significado tradicionalmente uma falta de argumentos substantivos.
Concordo, assim como uma falta de comportamento cultural, numa tentativa de humilhar o interlocutor.
Respeitosamente.
Quanto ao "não crédito", não fiz uma avaliação de seus argumentos e não menosprezei seus méritos, como eu gostaria que fizesse. Respeite-se, esfregue seu rosto na sujeira pode qualquer um, seja para dar a seu oponente uma razão para fazê-lo, pedindo rudeza em suas ações? todos nós nos desenvolvemos em algo, e que simplesmente não estamos interessados ou irrelevantes para nós.
Buscar personalidades tradicionalmente significa uma falta de argumentos sobre os méritos.
Concordo, assim como a falta de comportamento cultural na tentativa de humilhar o interlocutor.
Uau! certamente peço desculpas se ofendi alguém. Você deve ter ficado ofendido com o que eu disse:
Muito bem, senhores das honras, isso está resolvido. Estou mudando a função do teto só para você:
Mas eu mesmo, como plebeu e estudante de C, usarei a variante com noves, pois considero todos os seus argumentos nerd...
E qual é o termo "precisão da máquina", de qualquer forma. Há uma precisão padronizada como o dobro e outros tipos. Seu raciocínio não conta. Eu não direi nada sobre P.S.)) Tenho medo de ofender.
Bem, você sabe... Eu acho que você tem uma imaginação rica. Em comum brincadeira amigável você vê "transferência para a personalidade", "tentativa de humilhar o interlocutor", "menosprezo dos méritos" ...
Ou eu perdi alguma coisa, e em algum outro lugar eu ultrapassei os limites da decência?
Desculpe, Andrew, mas aparentemente eu não tenho conhecimento e experiência suficientes para entender o que você escreveu naquele P.S:
P.S. pode haver outras variantes, quando sua fórmula falhar em uma faixa de números. erro de ajuste constante devido à mudança para outra máquina, ou mudanças no compilador, sobre as quais você não é informado, ou mudanças na representação de números da máquina, ou corte departe fracionada do número ao compilar em novas versões do terminal... Não sei o que pode mudar, não acho uma boa idéia fazer SE ou sofrer para adivinhar o que vai acontecer prescrevendo um erro uma e outra vez...
Mais uma vez, peço desculpas pelo meu tom. Eu sempre defendo o respeito mútuo entre colegas e um comportamento correto. O diabo está em minha mente.
O que o levou a reduzir o tempo de arredondamento de 8 para 5 ou 2 milissegundos? Qual foi o verdadeiro fardo para o processador se mesmo tais atrasos provaram ser um gargalo? Não encontrei nenhuma dessas necessidades. Talvez seja algo abstrato, de interesse acadêmico?
É melhor abrir o perfil e ver em que ponto de seu código está atrasado, e obviamente não são funções matemáticas. A maioria são loops, várias consultas, etc. As funções matemáticas estão entre as mais rápidas e tentar cortar algo lá fora não é muito inteligente, eu acho.
Uau! certamente peço desculpas se ofendi alguém. Você deve ter ficado ofendido com o que eu disse:
Bem, você sabe... Acho que você tem uma imaginação vívida. Em uma simples brincadeira amigável você vê "personalidades", "tentativas de humilhar", "depreciar"...
Se você se permite 'Ridicularizar' seus amigos, não tem amigos, tem palhaços ao seu redor dos quais você às vezes ri e não valoriza a amizade e a opinião deles.
Ou eu perdi alguma coisa, e em algum outro lugar eu ultrapassei os limites da decência?
Eu não sou seu amigo, irmão ou mesmo pessoa próxima para que você possa lhe dar algum tipo de avaliação, ainda mais PUBLICAMENTE.
Desculpe, Andriy, mas aparentemente não tenho conhecimento e experiência suficientes para entender o que você escreveu naquele P.S.: eu ficaria muito grato se alguém pudesse me explicar o significado do que você escreveu.
O significado do que está escrito em P.S., que você não pode entender por alguma razão é óbvio, você não sabe como a técnica que você usa suas fórmulas rápidas se desenvolverá, você não sabe como a plataforma se desenvolverá, você não sabe o que será posteriormente adicionado ao compilador e como os números serão representados no espaço de registros do processador, você não sabe nada sobre isso e introduzir uma constante, dizendo que ela resolverá tudo positivamente e sempre, por assim dizer, é, por assim dizer, uma ilusão.
Se você levar em conta que sua fórmula será levada por outras pessoas do fórum e pode colocá-la em C ou Pascal ou algo assim, você precisa levar em conta estes pontos também, a matemática não tem limites nem na plataforma nem na linguagem de programação.
Mais uma vez, peço desculpas pelo meu tom. Eu sempre defendo o respeito mútuo entre colegas e a correção do comportamento. Eu estava fora da linha.
desculpas aceitas. não cometa os mesmos erros novamente, caso contrário, suas palavras não terão sentido.
Respeitosamente.
Não sei o que o faz pensar que sou lento. Pelo contrário, eu acho que meus algoritmos são os mais rápidos. Eu sou apenas um pouco doido por velocidade. É claro que a utilização de uma função alternativa de arredondamento tão eficiente proporciona muito pouco ganho, apenas frações de um por cento. Mas, como diz o ditado, do mundo em geral. Este também é o caso, por exemplo, da ciência aeronáutica e de foguetes. Na luta para reduzir o peso sem comprometer a força, tudo é modificado, até mesmo os parafusos. Talvez essa seja uma das razões pelas quais hoje os aviões são o meio de transporte mais seguro, ao contrário da lógica.
Com todo respeito.
Se você se permitir "ESTUDAR" seus amigos, você não tem amigos, tem palhaços ao seu redor dos quais você às vezes goza e não valoriza a amizade e opinião deles.
Parece que Nikolai estava certo sobre os nerds ))
Pessoalmente, não vi nenhuma referência pessoal lá. E você tem muitas cartas em seus postos, mas tudo está fora de tópico e você parece estar discutindo apenas para discutir.